Patch adds debug code to make sure that there are no extra
MGS export references taken before export barrier.
Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Change-Id: I4a7ae3130cb70a9b6847c9d4b5c2874ccf9ee72d
Reviewed-on: http://review.whamcloud.com/13920
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
+/* 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)
{
static struct lu_device *mgs_device_fini(const struct lu_env *env,
struct lu_device *d)
{
ptlrpc_unregister_service(mgs->mgs_service);
mutex_unlock(&mgs->mgs_health_mutex);
ptlrpc_unregister_service(mgs->mgs_service);
mutex_unlock(&mgs->mgs_health_mutex);
obd_exports_barrier(obd);
obd_zombie_barrier();
obd_exports_barrier(obd);
obd_zombie_barrier();