Whamcloud - gitweb
b=17187
[fs/lustre-release.git] / lustre / mdd / mdd_internal.h
index c5a0e64..0d66a68 100644 (file)
@@ -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)