summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/lock_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/concurrency/lock_state.cpp')
-rw-r--r--src/mongo/db/concurrency/lock_state.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/mongo/db/concurrency/lock_state.cpp b/src/mongo/db/concurrency/lock_state.cpp
index 33567b900b8..fa7dd845bb4 100644
--- a/src/mongo/db/concurrency/lock_state.cpp
+++ b/src/mongo/db/concurrency/lock_state.cpp
@@ -144,8 +144,6 @@ bool LockerImpl::_shouldDelayUnlock(ResourceId resId, LockMode mode) const {
return false;
case RESOURCE_GLOBAL:
- case RESOURCE_PBWM:
- case RESOURCE_RSTL:
case RESOURCE_DATABASE:
case RESOURCE_COLLECTION:
case RESOURCE_METADATA:
@@ -437,8 +435,7 @@ bool LockerImpl::unlockGlobal() {
// error for any lock used with multi-granularity locking to have more references than
// the global lock, because every scope starts by calling lockGlobal.
const auto resType = it.key().getType();
- if (resType == RESOURCE_GLOBAL || resType == RESOURCE_PBWM || resType == RESOURCE_RSTL ||
- resType == RESOURCE_MUTEX) {
+ if (resType == RESOURCE_GLOBAL || resType == RESOURCE_MUTEX) {
it.next();
} else {
invariant(_unlockImpl(&it));
@@ -789,8 +786,9 @@ bool LockerImpl::saveLockStateAndUnlock(Locker::LockSnapshot* stateOut) {
// We should never have to save and restore metadata locks.
invariant(RESOURCE_DATABASE == resType || RESOURCE_COLLECTION == resType ||
- (RESOURCE_PBWM == resType && isSharedLockMode(it->mode)) ||
- (RESOURCE_RSTL == resType && it->mode == MODE_IX));
+ (resId == resourceIdParallelBatchWriterMode && isSharedLockMode(it->mode)) ||
+ resId == resourceIdFeatureCompatibilityVersion ||
+ (resId == resourceIdReplicationStateTransitionLock && it->mode == MODE_IX));
// And, stuff the info into the out parameter.
OneLock info;
@@ -890,7 +888,7 @@ LockResult LockerImpl::_lockBegin(OperationContext* opCtx, ResourceId resId, Loc
// Give priority to the full modes for Global, PBWM, and RSTL resources so we don't stall global
// operations such as shutdown or stepdown.
const ResourceType resType = resId.getType();
- if (resType == RESOURCE_GLOBAL || resType == RESOURCE_PBWM || resType == RESOURCE_RSTL) {
+ if (resType == RESOURCE_GLOBAL) {
if (mode == MODE_S || mode == MODE_X) {
request->enqueueAtFront = true;
request->compatibleFirst = true;