summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/d_concurrency.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/concurrency/d_concurrency.cpp')
-rw-r--r--src/mongo/db/concurrency/d_concurrency.cpp10
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();
}
});