struct dt_insert_rec mti_dt_rec;
struct lfsck_req_local mti_lrl;
struct lu_seq_range mti_range;
+ union lmv_mds_md mti_lmv;
};
int mdd_la_get(const struct lu_env *env, struct mdd_object *obj,
struct thandle *handle,
struct linkea_data *ldata,
int first, int check);
+int mdd_dir_layout_shrink(const struct lu_env *env,
+ struct md_object *md_obj,
+ const struct lu_buf *lmu_buf);
struct mdd_thread_info *mdd_env_info(const struct lu_env *env);
extern const struct md_object_operations mdd_obj_ops;
int mdd_readlink(const struct lu_env *env, struct md_object *obj,
struct lu_buf *buf);
-int accmode(const struct lu_env *env, const struct lu_attr *la, int flags);
extern struct lu_context_key mdd_thread_key;
extern const struct lu_device_operations mdd_lu_ops;
__u64 uid, __u64 gid);
void mdd_changelog_rec_extra_nid(struct changelog_rec *rec,
lnet_nid_t nid);
-void mdd_changelog_rec_extra_omode(struct changelog_rec *rec, int flags);
+void mdd_changelog_rec_extra_omode(struct changelog_rec *rec, u32 flags);
void mdd_changelog_rec_extra_xattr(struct changelog_rec *rec,
const char *xattr_name);
int mdd_changelog_store(const struct lu_env *env, struct mdd_device *mdd,
struct llog_changelog_rec *rec, struct thandle *th);
int mdd_changelog_data_store(const struct lu_env *env, struct mdd_device *mdd,
- enum changelog_rec_type type, int flags,
+ enum changelog_rec_type type,
+ enum changelog_rec_flags clf_flags,
struct mdd_object *mdd_obj,
struct thandle *handle);
int mdd_changelog_ns_store(const struct lu_env *env, struct mdd_device *mdd,
enum changelog_rec_type type,
- enum changelog_rec_flags crf,
+ enum changelog_rec_flags clf_flags,
struct mdd_object *target,
const struct lu_fid *tpfid,
const struct lu_fid *sfid,
struct dt_allocation_hint *hint);
int mdd_stripe_get(const struct lu_env *env, struct mdd_object *obj,
struct lu_buf *lmm_buf, const char *name);
+int mdd_changelog_data_store_xattr(const struct lu_env *env,
+ struct mdd_device *mdd,
+ enum changelog_rec_type type,
+ enum changelog_rec_flags clf_flags,
+ struct mdd_object *mdd_obj,
+ const char *xattr_name,
+ struct thandle *handle);
/* mdd_trans.c */
void mdd_object_make_hint(const struct lu_env *env, struct mdd_object *parent,
__u32 *mode);
int __mdd_permission_internal(const struct lu_env *env, struct mdd_object *obj,
const struct lu_attr *la, int mask, int role);
-int mdd_permission(const struct lu_env *env,
- struct md_object *pobj, struct md_object *cobj,
- struct md_attr *ma, int mask);
+int mdd_permission(const struct lu_env *env, struct md_object *pobj,
+ struct md_object *cobj, struct md_attr *ma, int mask);
int mdd_generic_thread_start(struct mdd_generic_thread *thread,
int (*func)(void *), void *data, char *name);
void mdd_generic_thread_stop(struct mdd_generic_thread *thread);
return obj->mod_flags & VOLATILE_OBJ;
}
+static inline bool mdd_is_orphan_obj(struct mdd_object *obj)
+{
+ return obj->mod_flags & ORPHAN_OBJ;
+}
+
static inline int mdd_object_exists(struct mdd_object *obj)
{
return lu_object_exists(mdd2lu_obj(obj));