* then mti_ent::lde_name will be mti_key. */
struct lu_dirent mti_ent;
char mti_key[NAME_MAX + 16];
+ char mti_name[NAME_MAX + 1];
struct lu_buf mti_buf[4];
struct lu_buf mti_big_buf; /* biggish persistent buf */
struct lu_buf mti_link_buf; /* buf for link ea */
struct lu_buf mti_xattr_buf;
struct obdo mti_oa;
+ struct lmv_user_md mti_lmu;
struct dt_allocation_hint mti_hint;
struct dt_object_format mti_dof;
struct linkea_data mti_link_data;
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,
int mdd_write_locked(const struct lu_env *env, struct mdd_object *obj);
/* mdd_dir.c */
-int mdd_is_subdir(const struct lu_env *env, struct md_object *mo,
- const struct lu_fid *fid, struct lu_fid *sfid);
int mdd_may_create(const struct lu_env *env, struct mdd_object *pobj,
const struct lu_attr *pattr, struct mdd_object *cobj,
bool check_perm);
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);
struct thandle *handle,
const struct md_op_spec *spec,
struct dt_allocation_hint *hint);
-int mdd_get_lov_ea(const struct lu_env *env, struct mdd_object *obj,
- struct lu_buf *lmm_buf);
+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,
+ int 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,
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));