]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: update rstats on stray dir when you rename over existing inode.
authorGreg Farnum <gregory.farnum@dreamhost.com>
Wed, 13 Apr 2011 17:36:05 +0000 (10:36 -0700)
committerGreg Farnum <gregory.farnum@dreamhost.com>
Wed, 13 Apr 2011 17:36:23 +0000 (10:36 -0700)
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
src/mds/Server.cc

index 47649d468e713b36e08d12450c93215890cf3cf3..cc54d882af20264a00632e81a8a9c228466d3e56 100644 (file)
@@ -5129,9 +5129,11 @@ void Server::_rename_prepare(MDRequest *mdr,
   int predirty_dir = silent ? 0:PREDIRTY_DIR;
   
   // sub off target
-  if (destdn->is_auth() && !destdnl->is_null())
+  if (destdn->is_auth() && !destdnl->is_null()) {
     mdcache->predirty_journal_parents(mdr, metablob, destdnl->get_inode(), destdn->get_dir(),
                                      (destdnl->is_primary() ? PREDIRTY_PRIMARY:0)|predirty_dir, -1);
+    mdcache->predirty_journal_parents(mdr, metablob, destdnl->get_inode(), straydn->get_dir(), PREDIRTY_PRIMARY|PREDIRTY_DIR, 1);
+  }
   
   // move srcdn
   int predirty_primary = (srcdnl->is_primary() && srcdn->get_dir() != destdn->get_dir()) ? PREDIRTY_PRIMARY:0;