Whamcloud - gitweb
LU-12616 obclass: fix MDS start/stop race
[fs/lustre-release.git] / lustre / mdd / mdd_internal.h
index 7d50e68..ac8ecc3 100644 (file)
@@ -139,7 +139,6 @@ struct mdd_device {
        struct lu_fid                    mdd_local_root_fid;
         struct dt_device_param           mdd_dt_conf;
         struct dt_object                *mdd_orphans; /* PENDING directory */
-       struct proc_dir_entry            *mdd_proc_entry;
         struct mdd_changelog             mdd_cl;
        unsigned int                     mdd_changelog_gc;
        time64_t                         mdd_changelog_max_idle_time;
@@ -153,6 +152,9 @@ struct mdd_device {
        int                              mdd_connects;
        struct local_oid_storage        *mdd_los;
        struct mdd_generic_thread        mdd_orphan_cleanup_thread;
+       struct kobject                   mdd_kobj;
+       struct kobj_type                 mdd_ktype;
+       struct completion                mdd_kobj_unregister;
 };
 
 enum mod_flags {
@@ -229,9 +231,9 @@ int mdd_create_object_internal(const struct lu_env *env, struct mdd_object *p,
 
 /* mdd_lock.c */
 void mdd_write_lock(const struct lu_env *env, struct mdd_object *obj,
-                    enum mdd_object_role role);
+                   enum dt_object_role role);
 void mdd_read_lock(const struct lu_env *env, struct mdd_object *obj,
-                   enum mdd_object_role role);
+                  enum dt_object_role role);
 void mdd_write_unlock(const struct lu_env *env, struct mdd_object *obj);
 void mdd_read_unlock(const struct lu_env *env, struct mdd_object *obj);
 int mdd_write_locked(const struct lu_env *env, struct mdd_object *obj);
@@ -305,7 +307,6 @@ extern const struct md_dir_operations    mdd_dir_ops;
 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;
 
@@ -326,18 +327,19 @@ void mdd_changelog_rec_extra_uidgid(struct changelog_rec *rec,
                                    __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,
@@ -358,7 +360,8 @@ int mdd_stripe_get(const struct lu_env *env, struct mdd_object *obj,
 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,
+                                  enum changelog_rec_flags clf_flags,
+                                  struct mdd_object *mdd_obj,
                                   const char *xattr_name,
                                   struct thandle *handle);
 
@@ -402,9 +405,8 @@ int __mdd_fix_mode_acl(const struct lu_env *env, struct lu_buf *buf,
                       __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);
@@ -494,6 +496,11 @@ static inline bool mdd_is_volatile_obj(struct mdd_object *obj)
        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));
@@ -532,7 +539,7 @@ static inline int mdd_permission_internal_locked(const struct lu_env *env,
                                                struct mdd_object *obj,
                                                const struct lu_attr *la,
                                                int mask,
-                                               enum mdd_object_role role)
+                                               enum dt_object_role role)
 {
        return __mdd_permission_internal(env, obj, la, mask, role);
 }