Skip to content

Commit f50693f

Browse files
committed
mds: allow lock state to be LOCK_MIX_SYNC in replica for filelock
When the auth MDS is transmitting state from LOCK_MIX to LOCK_SYNC it will transmit the state to a intermidiate state LOCK_MIX_SYNC. Then notifies the replicate MDSs and waits for the acks. But just in case for some reasons the replicate MDSs couldn't successfully transmit the state from LOCK_MIX to LOCK_MIX_SYNC and then LOCK_MIX_SYNC2. And just the auth MDS failover or restart and then resend the notification. Fixes: https://tracker.ceph.com/issues/54833 Signed-off-by: Xiubo Li <[email protected]>
1 parent eed1272 commit f50693f

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/mds/Locker.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5765,6 +5765,7 @@ void Locker::handle_file_lock(ScatterLock *lock, const cref_t<MLock> &m)
57655765
case LOCK_AC_SYNC:
57665766
ceph_assert(lock->get_state() == LOCK_LOCK ||
57675767
lock->get_state() == LOCK_MIX ||
5768+
lock->get_state() == LOCK_MIX_SYNC ||
57685769
lock->get_state() == LOCK_MIX_SYNC2);
57695770

57705771
if (lock->get_state() == LOCK_MIX) {

0 commit comments

Comments
 (0)