]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
server: drop locks and auth pins before waiting for trunc 9713/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 15 Jun 2016 08:27:24 +0000 (16:27 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 15 Jun 2016 08:27:24 +0000 (16:27 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/mds/Server.cc

index e7ef6251d844b6e69e4a44961a095bb9c9a54ac8..aa6219246e04e514bc73795f5c3e62b201d7e6a6 100644 (file)
@@ -3750,6 +3750,8 @@ void Server::handle_client_setattr(MDRequestRef& mdr)
     if (truncating_smaller && 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));
       mds->mdlog->flush();
       return;