From: xie xingguo Date: Wed, 15 Jun 2016 08:27:24 +0000 (+0800) Subject: server: drop locks and auth pins before waiting for trunc X-Git-Tag: v11.0.0~155^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f9145f9ef1b30339501e2771ff78ce54d62d733f;p=ceph.git server: drop locks and auth pins before waiting for trunc Signed-off-by: xie xingguo --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index e7ef6251d844..aa6219246e04 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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;