]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: verify frags in more approrpiate places
authorSage Weil <sage.weil@dreamhost.com>
Wed, 23 Feb 2011 21:17:32 +0000 (13:17 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 23 Feb 2011 21:17:32 +0000 (13:17 -0800)
Not in inner helpers, which may be called on multiple frags to get things
in sync.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/mds/MDCache.cc
src/mds/journal.cc

index 91153519366deceb3437f18eea0c746ff2ba9c3a..4ca113c9330f5d0ae51af389ecf0da56755f4c00 100644 (file)
@@ -8860,9 +8860,6 @@ void MDCache::adjust_dir_fragments(CInode *diri,
 
     resultfrags.push_back(f);
   }
-
-  if (g_conf.mds_debug_frag)
-    diri->verify_dirfrags();
 }
 
 
@@ -9111,6 +9108,8 @@ void MDCache::fragment_frozen(list<CDir*>& dirs, frag_t basefrag, int bits)
   list<CDir*> resultfrags;
   list<Context*> waiters;
   adjust_dir_fragments(diri, dirs, basefrag, bits, resultfrags, waiters, false);
+  if (g_conf.mds_debug_frag)
+    diri->verify_dirfrags();
   mds->queue_waiters(waiters);
 
   // journal
@@ -9233,7 +9232,9 @@ void MDCache::handle_fragment_notify(MMDSFragmentNotify *notify)
     list<CDir*> resultfrags;
     adjust_dir_fragments(diri, notify->get_basefrag(), notify->get_bits(), 
                         resultfrags, waiters, false);
-
+    if (g_conf.mds_debug_frag)
+      diri->verify_dirfrags();
+    
     /*
     // add new replica dirs values
     bufferlist::iterator p = notify->basebl.begin();
@@ -9260,6 +9261,8 @@ void MDCache::rollback_uncommitted_fragments()
     list<CDir*> resultfrags;
     list<Context*> waiters;
     adjust_dir_fragments(diri, p->first.frag, -p->second, resultfrags, waiters, true);
+    if (g_conf.mds_debug_frag)
+      diri->verify_dirfrags();
   }
   uncommitted_fragments.clear();
 }
index e25521c1aca0b499797ef8eb945cf1c8f9bbb076..80dd3fcf90685e1776ee1358076c548c5a28301a 100644 (file)
@@ -1042,6 +1042,8 @@ void EFragment::replay(MDS *mds)
     }
   }
   metablob.replay(mds, _segment);
+  if (in && g_conf.mds_debug_frag)
+    in->verify_dirfrags();
 }