#define MAX_COMMIT_CB_STR_LEN 32
struct dt_txn_commit_cb {
- cfs_list_t dcb_linkage;
- dt_cb_t dcb_func;
- __u32 dcb_magic;
- char dcb_name[MAX_COMMIT_CB_STR_LEN];
+ struct list_head dcb_linkage;
+ dt_cb_t dcb_func;
+ __u32 dcb_magic;
+ char dcb_name[MAX_COMMIT_CB_STR_LEN];
};
/**
* way, because callbacks are supposed to be added/deleted only during
* single-threaded start-up shut-down procedures.
*/
- cfs_list_t dd_txn_callbacks;
+ struct list_head dd_txn_callbacks;
unsigned int dd_record_fid_accessed:1;
};
*/
struct local_oid_storage {
/* all initialized llog systems on this node linked by this */
- cfs_list_t los_list;
+ struct list_head los_list;
/* how many handle's reference this los has */
atomic_t los_refcount;
int (*dtc_txn_stop)(const struct lu_env *env,
struct thandle *txn, void *cookie);
void (*dtc_txn_commit)(struct thandle *txn, void *cookie);
- void *dtc_cookie;
- __u32 dtc_tag;
- cfs_list_t dtc_linkage;
+ void *dtc_cookie;
+ __u32 dtc_tag;
+ struct list_head dtc_linkage;
};
void dt_txn_callback_add(struct dt_device *dev, struct dt_txn_callback *cb);
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_create);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_CREATE))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_create(env, dt, attr, hint, dof, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_create);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_CREATE))
+ return cfs_fail_err;
+
return dt->do_ops->do_create(env, dt, attr, hint, dof, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_destroy);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_DESTROY))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_destroy(env, dt, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_destroy);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DESTROY))
+ return cfs_fail_err;
+
return dt->do_ops->do_destroy(env, dt, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_attr_get);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_ATTR_GET))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_attr_get(env, dt, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_attr_get);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_ATTR_GET))
+ return cfs_fail_err;
+
return dt->do_ops->do_attr_get(env, dt, la, arg);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_attr_set);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_ATTR_SET))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_attr_set(env, dt, la, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_attr_set);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_ATTR_SET))
+ return cfs_fail_err;
+
return dt->do_ops->do_attr_set(env, dt, la, th, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_ref_add);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_REF_ADD))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_ref_add(env, dt, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_ref_add);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_REF_ADD))
+ return cfs_fail_err;
+
return dt->do_ops->do_ref_add(env, dt, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_ref_del);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_REF_DEL))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_ref_del(env, dt, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_ref_del);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_REF_DEL))
+ return cfs_fail_err;
+
return dt->do_ops->do_ref_del(env, dt, th);
}
}
static inline int dt_bufs_get(const struct lu_env *env, struct dt_object *d,
- struct niobuf_remote *rnb,
- struct niobuf_local *lnb, int rw,
- struct lustre_capa *capa)
+ struct niobuf_remote *rnb,
+ struct niobuf_local *lnb, int rw,
+ struct lustre_capa *capa)
{
- LASSERT(d);
- LASSERT(d->do_body_ops);
- LASSERT(d->do_body_ops->dbo_bufs_get);
- return d->do_body_ops->dbo_bufs_get(env, d, rnb->offset,
- rnb->len, lnb, rw, capa);
+ LASSERT(d);
+ LASSERT(d->do_body_ops);
+ LASSERT(d->do_body_ops->dbo_bufs_get);
+ return d->do_body_ops->dbo_bufs_get(env, d, rnb->rnb_offset,
+ rnb->rnb_len, lnb, rw, capa);
}
static inline int dt_bufs_put(const struct lu_env *env, struct dt_object *d,
LASSERT(dt);
LASSERT(dt->do_index_ops);
LASSERT(dt->do_index_ops->dio_declare_insert);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_INSERT))
+ return cfs_fail_err;
+
return dt->do_index_ops->dio_declare_insert(env, dt, rec, key, th);
}
LASSERT(dt);
LASSERT(dt->do_index_ops);
LASSERT(dt->do_index_ops->dio_insert);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_INSERT))
+ return cfs_fail_err;
+
return dt->do_index_ops->dio_insert(env, dt, rec, key, th,
capa, noquota);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_xattr_del);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_XATTR_DEL))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_xattr_del(env, dt, name, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_xattr_del);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_XATTR_DEL))
+ return cfs_fail_err;
+
return dt->do_ops->do_xattr_del(env, dt, name, th, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_xattr_set);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_XATTR_SET))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_xattr_set(env, dt, buf, name, fl, th);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_xattr_set);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_XATTR_SET))
+ return cfs_fail_err;
+
return dt->do_ops->do_xattr_set(env, dt, buf, name, fl, th, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_declare_xattr_get);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_XATTR_GET))
+ return cfs_fail_err;
+
return dt->do_ops->do_declare_xattr_get(env, dt, buf, name, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_xattr_get);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_XATTR_GET))
+ return cfs_fail_err;
+
return dt->do_ops->do_xattr_get(env, dt, buf, name, capa);
}
LASSERT(dt);
LASSERT(dt->do_ops);
LASSERT(dt->do_ops->do_xattr_list);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_XATTR_LIST))
+ return cfs_fail_err;
+
return dt->do_ops->do_xattr_list(env, dt, buf, capa);
}
LASSERT(dt);
LASSERT(dt->do_index_ops);
LASSERT(dt->do_index_ops->dio_declare_delete);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_DELETE))
+ return cfs_fail_err;
+
return dt->do_index_ops->dio_declare_delete(env, dt, key, th);
}
LASSERT(dt);
LASSERT(dt->do_index_ops);
LASSERT(dt->do_index_ops->dio_delete);
+
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_DELETE))
+ return cfs_fail_err;
+
return dt->do_index_ops->dio_delete(env, dt, key, th, capa);
}
LASSERT(dt->do_index_ops);
LASSERT(dt->do_index_ops->dio_lookup);
+ if (CFS_FAULT_CHECK(OBD_FAIL_DT_LOOKUP))
+ return cfs_fail_err;
+
ret = dt->do_index_ops->dio_lookup(env, dt, rec, key, capa);
if (ret > 0)
ret = 0;
struct dt_object *dfh_o;
};
+struct dt_insert_rec {
+ union {
+ const struct lu_fid *rec_fid;
+ void *rec_data;
+ };
+ union {
+ struct {
+ __u32 rec_type;
+ __u32 rec_padding;
+ };
+ __u64 rec_misc;
+ };
+};
+
struct dt_thread_info {
char dti_buf[DT_MAX_PATH];
struct dt_find_hint dti_dfh;
struct lu_buf dti_lb;
struct lu_object_conf dti_conf;
loff_t dti_off;
+ struct dt_insert_rec dti_dt_rec;
};
extern struct lu_context_key dt_key;