]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: return open dn to client when it wants it
authorSage Weil <sage@newdream.net>
Thu, 26 Mar 2009 23:42:27 +0000 (16:42 -0700)
committerSage Weil <sage@newdream.net>
Thu, 26 Mar 2009 23:42:27 +0000 (16:42 -0700)
src/mds/Server.cc

index 708cc85cad60521f784b8a51e62758387f78fa14..a16580f2a14f3927cfb795678acd5c50608f0cf4 100644 (file)
@@ -525,6 +525,8 @@ void Server::reconnect_tick()
 
 void Server::journal_and_reply(MDRequest *mdr, CInode *in, CDentry *dn, LogEvent *le, Context *fin)
 {
+  dout(10) << "journal_and_reply tracei " << in << " tracedn " << dn << dendl;
+
   // note trace items for eventual reply.
   mdr->tracei = in;
   if (in && in != mdr->ref)
@@ -5007,8 +5009,11 @@ void Server::handle_client_open(MDRequest *mdr)
   else
     mds->balancer->hit_inode(mdr->now, cur, META_POP_IRD, 
                             mdr->client_request->get_orig_source().num());
-  
-  reply_request(mdr, 0, cur);
+
+  CDentry *dn = 0;
+  if (mdr->trace.size())
+    dn = mdr->trace.back();
+  reply_request(mdr, 0, cur, dn);
 }