Whamcloud - gitweb
LU-2729 mgs: fix cleanup of nonexistant MGSSELF_NAME proc file
authorJeff Mahoney <jeffm@suse.com>
Mon, 4 Feb 2013 22:05:02 +0000 (17:05 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 20 Feb 2013 07:41:04 +0000 (02:41 -0500)
The mgs teardown code gets invoked in the failure case but assumes
that the MGSSELF_NAME proc file has been created. If it hasn't been
created, the proc code issues a WARN_ON.

The setup code clears the FSDB_MGS_SELF from &fsdb->fsdb_flags when it
creates the proc file, so we can key off of that to decide whether to
remove it.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Change-Id: Idf58d1fa572eeced5dbaa72f03e38ee46a708166
Reviewed-on: http://review.whamcloud.com/5122
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>

index 54f299b..65513fd 100644 (file)
@@ -292,7 +292,9 @@ int lproc_mgs_del_live(struct mgs_device *mgs, struct fs_db *fsdb)
         if (!mgs->mgs_proc_live)
                 return 0;
-        lprocfs_remove_proc_entry(fsdb->fsdb_name, mgs->mgs_proc_live);
+       /* didn't create the proc file for MGSSELF_NAME */
+       if (!test_bit(FSDB_MGS_SELF, &fsdb->fsdb_flags))
+               lprocfs_remove_proc_entry(fsdb->fsdb_name, mgs->mgs_proc_live);
         return 0;