Whamcloud - gitweb
LU-8592 mdt: hold mdt_device::mdt_md_root until service stop
[fs/lustre-release.git] / lustre / mdt / mdt_handler.c
index 42e7f7d..c3e8cf1 100644 (file)
@@ -4509,11 +4509,6 @@ static void mdt_fini(const struct lu_env *env, struct mdt_device *m)
        struct lfsck_stop        stop;
        ENTRY;
 
        struct lfsck_stop        stop;
        ENTRY;
 
-       if (m->mdt_md_root != NULL) {
-               mdt_object_put(env, m->mdt_md_root);
-               m->mdt_md_root = NULL;
-       }
-
        stop.ls_status = LS_PAUSED;
        stop.ls_flags = 0;
        next->md_ops->mdo_iocontrol(env, next, OBD_IOC_STOP_LFSCK, 0, &stop);
        stop.ls_status = LS_PAUSED;
        stop.ls_flags = 0;
        next->md_ops->mdo_iocontrol(env, next, OBD_IOC_STOP_LFSCK, 0, &stop);
@@ -4548,6 +4543,11 @@ static void mdt_fini(const struct lu_env *env, struct mdt_device *m)
                d->ld_obd->obd_namespace = m->mdt_namespace = NULL;
        }
 
                d->ld_obd->obd_namespace = m->mdt_namespace = NULL;
        }
 
+       if (m->mdt_md_root != NULL) {
+               mdt_object_put(env, m->mdt_md_root);
+               m->mdt_md_root = NULL;
+       }
+
        mdt_quota_fini(env, m);
 
        cfs_free_nidlist(&m->mdt_squash.rsi_nosquash_nids);
        mdt_quota_fini(env, m);
 
        cfs_free_nidlist(&m->mdt_squash.rsi_nosquash_nids);