__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;
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 {
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,
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
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)