]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: mark rmdir with slaves as a master in journal
authorSage Weil <sage@newdream.net>
Wed, 20 Jul 2011 20:17:23 +0000 (13:17 -0700)
committerSage Weil <sage@newdream.net>
Wed, 20 Jul 2011 20:17:23 +0000 (13:17 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/Server.cc

index ee2c46b591a288c573c1b691d4c87c6a1d813c18..829c2c3b21ebffb0c323a122ca1376e9d279e293 100644 (file)
@@ -4474,6 +4474,12 @@ void Server::_unlink_local(MDRequest *mdr, CDentry *dn, CDentry *straydn)
   EUpdate *le = new EUpdate(mdlog, "unlink_local");
   mdlog->start_entry(le);
   le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
+  if (!mdr->more()->slaves.empty()) {
+    dout(20) << " noting uncommitted_slaves " << mdr->more()->slaves << dendl;
+    le->reqid = mdr->reqid;
+    le->had_slaves = true;
+    mds->mdcache->add_uncommitted_master(mdr->reqid, mdr->ls, mdr->more()->slaves);
+  }
 
   if (straydn) {
     assert(dnl->is_primary());