Whamcloud - gitweb
b=20591 fix race on obd_device::md_stats
[fs/lustre-release.git] / lustre / mgs / mgs_fs.c
index 4b87e84..0ff9ebf 100644 (file)
@@ -73,13 +73,11 @@ static int mgs_export_stats_init(struct obd_device *obd, struct obd_export *exp,
                 return rc;
         }
 
-        if (!obd->md_stats &&
-            lprocfs_alloc_md_stats(obd, LPROC_MGS_LAST))
-                        return rc;
         if (newnid) {
                 /* Always add in ldlm_stats */
                 exp->exp_nid_stats->nid_ldlm_stats =
-                        lprocfs_alloc_stats(LDLM_LAST_OPC - LDLM_FIRST_OPC, 0);
+                        lprocfs_alloc_stats(LDLM_LAST_OPC - LDLM_FIRST_OPC,
+                                            LPROCFS_STATS_FLAG_NOPERCPU);
                 if (exp->exp_nid_stats->nid_ldlm_stats == NULL)
                         return -ENOMEM;
                 lprocfs_init_ldlm_stats(exp->exp_nid_stats->nid_ldlm_stats);
@@ -244,16 +242,12 @@ int mgs_fs_cleanup(struct obd_device *obd)
         push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
 
         if (mgs->mgs_configs_dir) {
-                /*CERROR("configs dir dcount=%d\n",
-                       atomic_read(&mgs->mgs_configs_dir->d_count));*/
                 l_dput(mgs->mgs_configs_dir);
                 mgs->mgs_configs_dir = NULL;
         }
 
-        shrink_dcache_parent(mgs->mgs_fid_de);
-        /*CERROR("fid dir dcount=%d\n",
-               atomic_read(&mgs->mgs_fid_de->d_count));*/
         dput(mgs->mgs_fid_de);
+        shrink_dcache_sb(mgs->mgs_sb);
 
         pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);