From e909eaf20390195cf80bf798eedb19aad1480745 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Mon, 3 Mar 2014 10:03:35 +0800 Subject: [PATCH] mds: drop auth pins before waiting for dir unfreeze Otherwise deadlock can happen Signed-off-by: Yan, Zheng --- src/mds/Server.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 702ab1f4452a1..dfb44cb45b02d 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2838,6 +2838,8 @@ void Server::handle_client_readdir(MDRequest *mdr) if (!dir->is_complete()) { if (dir->is_frozen()) { dout(7) << "dir is frozen " << *dir << dendl; + mds->locker->drop_locks(mdr); + mdr->drop_local_auth_pins(); dir->add_waiter(CDir::WAIT_UNFREEZE, new C_MDS_RetryRequest(mdcache, mdr)); return; } -- 2.39.5