diff options
Diffstat (limited to 'src/mongo/db/concurrency/d_concurrency.cpp')
-rw-r--r-- | src/mongo/db/concurrency/d_concurrency.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mongo/db/concurrency/d_concurrency.cpp b/src/mongo/db/concurrency/d_concurrency.cpp index d63ac182dc1..6d002a08ff8 100644 --- a/src/mongo/db/concurrency/d_concurrency.cpp +++ b/src/mongo/db/concurrency/d_concurrency.cpp @@ -149,13 +149,11 @@ Lock::GlobalLock::GlobalLock(OperationContext* opCtx, } }); - if (_opCtx->lockState()->shouldConflictWithSetFeatureCompatibilityVersion() && - !isSharedLockMode(lockMode)) { - _fcvLock.lock(_opCtx, MODE_IX, deadline); + if (_opCtx->lockState()->shouldConflictWithSetFeatureCompatibilityVersion()) { + _fcvLock.lock(_opCtx, isSharedLockMode(lockMode) ? MODE_IS : MODE_IX, deadline); } - ScopeGuard unlockFCVLock([this, lockMode] { - if (_opCtx->lockState()->shouldConflictWithSetFeatureCompatibilityVersion() && - !isSharedLockMode(lockMode)) { + ScopeGuard unlockFCVLock([this] { + if (_opCtx->lockState()->shouldConflictWithSetFeatureCompatibilityVersion()) { _fcvLock.unlock(); } }); |