summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGregory Noma <gregory.noma@gmail.com>2022-05-25 12:40:40 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-05-26 13:38:04 +0000
commitfaf655827b3acedf1513bc140e753a5556f2e5a3 (patch)
tree381376cad1e209bd41bb7ba34a943ae6a86e5510 /src
parent78889bdd2b6c6180483d97e5fa220aa660f23a03 (diff)
SERVER-66719 Take FCV lock in `MODE_IS` for shared global lock modesr5.3.2-rc2r5.3.2
(cherry picked from commit 1c3268ae7fd8ffd678c20d5f2ac977be2a2c982f)
Diffstat (limited to 'src')
-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();
}
});