]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Server: drop locks and auth pins if wait for pending truncate 9716/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 15 Jun 2016 09:39:00 +0000 (17:39 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 15 Jun 2016 09:39:00 +0000 (17:39 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/mds/Server.cc

index e7ef6251d844b6e69e4a44961a095bb9c9a54ac8..a62ff2816d876fefa452e79e199c622a0db62afe 100644 (file)
@@ -2977,6 +2977,8 @@ void Server::handle_client_open(MDRequestRef& mdr)
     if (pi->is_truncating()) {
       dout(10) << " waiting for pending truncate from " << pi->truncate_from
               << " to " << pi->truncate_size << " to complete on " << *cur << dendl;
+      mds->locker->drop_locks(mdr.get());
+      mdr->drop_local_auth_pins();
       cur->add_waiter(CInode::WAIT_TRUNC, new C_MDS_RetryRequest(mdcache, mdr));
       return;
     }