From 0ecac2102ad64d7b2556ca4e9a48c53b12e2db43 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Thu, 21 Jul 2016 17:35:47 +0800 Subject: [PATCH] mds: avoid unnecessary log flush for CInode::WAIT_TRUNC Signed-off-by: Yan, Zheng --- src/mds/MDCache.cc | 3 ++- src/mds/Server.cc | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 4edee0c699a2..dc848c1c2737 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -6262,7 +6262,8 @@ void MDCache::truncate_inode_finish(CInode *in, LogSegment *ls) mds->mdlog->submit_entry(le, new C_MDC_TruncateLogged(this, in, mut)); // flush immediately if there are readers/writers waiting - if (in->get_caps_wanted() & (CEPH_CAP_FILE_RD|CEPH_CAP_FILE_WR)) + if (in->is_waiter_for(CInode::WAIT_TRUNC) || + (in->get_caps_wanted() & (CEPH_CAP_FILE_RD|CEPH_CAP_FILE_WR))) mds->mdlog->flush(); } diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 9e4df1404043..29f8eeb33cd8 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -3779,7 +3779,6 @@ void Server::handle_client_setattr(MDRequestRef& mdr) 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; } } -- 2.47.3