]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: make adjust_dir_fragments always adjust fragtree
authorSage Weil <sage@newdream.net>
Wed, 5 Jan 2011 23:17:36 +0000 (15:17 -0800)
committerSage Weil <sage@newdream.net>
Thu, 6 Jan 2011 00:48:15 +0000 (16:48 -0800)
If we have the inode but no dirfrags, we still need to adjust the
inode dirfragtree.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/MDCache.cc

index 88fb8f39ce37399eb92c12e3f9ff14255a76d15d..621a43a326cb361b50c0ec39edbc16916b25f927 100644 (file)
@@ -8674,8 +8674,7 @@ void MDCache::adjust_dir_fragments(CInode *diri, frag_t basefrag, int bits,
   list<CDir*> srcfrags;
   diri->get_dirfrags_under(basefrag, srcfrags);
 
-  if (!srcfrags.empty())
-    adjust_dir_fragments(diri, srcfrags, basefrag, bits, resultfrags, waiters, replay);
+  adjust_dir_fragments(diri, srcfrags, basefrag, bits, resultfrags, waiters, replay);
 }
 
 CDir *MDCache::force_dir_fragment(CInode *diri, frag_t fg)
@@ -8742,6 +8741,9 @@ void MDCache::adjust_dir_fragments(CInode *diri,
     diri->dirfragtree.split(basefrag, bits);
   dout(10) << " new fragtree is " << diri->dirfragtree << dendl;
 
+  if (srcfrags.empty())
+    return;
+
   // split
   CDir *parent_dir = diri->get_parent_dir();
   CDir *parent_subtree = 0;