Whamcloud - gitweb
LU-4772 mgs: free MGS fsdb before export barrier 43/14443/2
authorMikhail Pershin <mike.pershin@intel.com>
Sun, 1 Mar 2015 17:19:56 +0000 (20:19 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 20 May 2015 19:16:15 +0000 (19:16 +0000)
The mgs_fsc keeps export reference and should be cleaned up
before the waiting for exports cleanup. Patch moves FSDB cleanup
functions which cleanups also mgs_fsc ahead of obd_export_barried()

Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Change-Id: I98aa2e669a7ed2cba3b31df44fd3e96dcbbb6807
Reviewed-on: http://review.whamcloud.com/14443
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mgs/mgs_handler.c

index 2e71fef..ea95a04 100644 (file)
@@ -1365,22 +1365,6 @@ static struct lu_device *mgs_device_alloc(const struct lu_env *env,
        return ludev;
 }
 
-/* LU-4772 debug function.
- * It checks there are no FSC keep export reference before
- * obd_exports_barrier() call.
- */
-int mgs_fsc_debug(struct mgs_device *mgs)
-{
-       struct fs_db *fsdb;
-
-       mutex_lock(&mgs->mgs_mutex);
-       list_for_each_entry(fsdb, &mgs->mgs_fs_db_list, fsdb_list)
-               LASSERTF(list_empty(&fsdb->fsdb_clients),
-                        "Find FSC after cleanup, FSDB %s\n", fsdb->fsdb_name);
-       mutex_unlock(&mgs->mgs_mutex);
-       return 0;
-}
-
 static struct lu_device *mgs_device_fini(const struct lu_env *env,
                                         struct lu_device *d)
 {
@@ -1400,14 +1384,13 @@ static struct lu_device *mgs_device_fini(const struct lu_env *env,
        ptlrpc_unregister_service(mgs->mgs_service);
        mutex_unlock(&mgs->mgs_health_mutex);
 
-       mgs_fsc_debug(mgs);
+       mgs_params_fsdb_cleanup(env, mgs);
+       mgs_cleanup_fsdb_list(mgs);
 
        obd_exports_barrier(obd);
        obd_zombie_barrier();
 
        tgt_fini(env, &mgs->mgs_lut);
-       mgs_params_fsdb_cleanup(env, mgs);
-       mgs_cleanup_fsdb_list(mgs);
        lproc_mgs_cleanup(mgs);
 
        ctxt = llog_get_context(mgs->mgs_obd, LLOG_CONFIG_ORIG_CTXT);