From f68da59b258ebedd93914db5d880defca33d9f9c Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Thu, 20 Apr 2017 12:44:51 +0800 Subject: [PATCH] mds: flush journal when gathering replica lock Signed-off-by: "Yan, Zheng" --- src/mds/Locker.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 0d29930deca..ff5ceb40987 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -3856,6 +3856,8 @@ void Locker::handle_simple_lock(SimpleLock *lock, MLock *m) if (lock->is_leased()) revoke_client_leases(lock); eval_gather(lock, true); + if (lock->is_unstable_and_locked()) + mds->mdlog->flush(); break; @@ -5092,6 +5094,8 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m) if (lock->get_state() == LOCK_MIX) { lock->set_state(LOCK_MIX_SYNC); eval_gather(lock, true); + if (lock->is_unstable_and_locked()) + mds->mdlog->flush(); break; } @@ -5117,6 +5121,9 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m) } eval_gather(lock, true); + if (lock->is_unstable_and_locked()) + mds->mdlog->flush(); + break; case LOCK_AC_LOCKFLUSHED: @@ -5136,6 +5143,8 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m) // MIXED lock->set_state(LOCK_SYNC_MIX); eval_gather(lock, true); + if (lock->is_unstable_and_locked()) + mds->mdlog->flush(); break; } -- 2.47.3