X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_internal.h;h=0d66a68d01fac87fb09e0ee05f88afc480e1efd5;hb=a87b1b04494193c39e3e4289b0d41c228d9451b1;hp=c5a0e64cb29bb83931e258c4530a219f73917f73;hpb=0e660eab787c3b2857e4295f1ec554e016393885;p=fs%2Flustre-release.git diff --git a/lustre/mdd/mdd_internal.h b/lustre/mdd/mdd_internal.h index c5a0e64..0d66a68d 100644 --- a/lustre/mdd/mdd_internal.h +++ b/lustre/mdd/mdd_internal.h @@ -110,6 +110,11 @@ struct mdd_changelog { __u64 mc_starttime; }; +/** Objects in .lustre dir */ +struct mdd_dot_lustre_objs { + struct mdd_object *mdd_obf; +}; + struct mdd_device { struct md_device mdd_md_dev; struct dt_device *mdd_child; @@ -123,6 +128,8 @@ struct mdd_device { struct mdd_txn_op_descr mdd_tod[MDD_TXN_LAST_OP]; struct mdd_changelog mdd_cl; unsigned long mdd_atime_diff; + struct mdd_object *mdd_dot_lustre; + struct mdd_dot_lustre_objs mdd_dot_lustre_objs; }; enum mod_flags { @@ -222,6 +229,7 @@ int mdd_get_md(const struct lu_env *env, struct mdd_object *obj, void *md, int *md_size, const char *name); int mdd_get_md_locked(const struct lu_env *env, struct mdd_object *obj, void *md, int *md_size, const char *name); +int mdd_data_get(const struct lu_env *env, struct mdd_object *obj, void **data); int mdd_la_get(const struct lu_env *env, struct mdd_object *obj, struct lu_attr *la, struct lustre_capa *capa); int mdd_attr_set_internal(const struct lu_env *env, @@ -361,6 +369,8 @@ extern const struct lu_device_operations mdd_lu_ops; struct mdd_object *mdd_object_find(const struct lu_env *env, struct mdd_device *d, const struct lu_fid *f); +int mdd_get_default_md(struct mdd_object *mdd_obj, struct lov_mds_md *lmm, + int *size); /* mdd_quota.c*/ #ifdef HAVE_QUOTA_SUPPORT @@ -638,6 +648,15 @@ static inline int mdd_permission_internal_locked(const struct lu_env *env, return __mdd_permission_internal(env, obj, la, mask, role); } +static inline int mdo_data_get(const struct lu_env *env, + struct mdd_object *obj, + void **data) +{ + struct dt_object *next = mdd_object_child(obj); + next->do_ops->do_data_get(env, next, data); + return 0; +} + /* mdd inline func for calling osd_dt_object ops */ static inline int mdo_attr_get(const struct lu_env *env, struct mdd_object *obj, struct lu_attr *la, struct lustre_capa *capa)