summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/catalog/rename_collection.cpp4
-rw-r--r--src/mongo/db/catalog_raii.cpp4
-rw-r--r--src/mongo/db/commands/create_indexes.cpp2
-rw-r--r--src/mongo/db/index_builds_coordinator.cpp2
-rw-r--r--src/mongo/db/s/active_migrations_registry.cpp2
-rw-r--r--src/mongo/db/s/collection_sharding_state.cpp2
-rw-r--r--src/mongo/db/s/flush_database_cache_updates_command.cpp2
-rw-r--r--src/mongo/db/s/get_database_version_command.cpp2
-rw-r--r--src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp2
-rw-r--r--src/mongo/db/s/op_observer_sharding_impl.cpp8
-rw-r--r--src/mongo/db/s/shard_filtering_metadata_refresh.cpp2
-rw-r--r--src/mongo/db/s/sharding_state_lock.h7
12 files changed, 20 insertions, 19 deletions
diff --git a/src/mongo/db/catalog/rename_collection.cpp b/src/mongo/db/catalog/rename_collection.cpp
index e339e7876c7..b575f1f5d88 100644
--- a/src/mongo/db/catalog/rename_collection.cpp
+++ b/src/mongo/db/catalog/rename_collection.cpp
@@ -111,7 +111,7 @@ Status checkSourceAndTargetNamespaces(OperationContext* opCtx,
{
auto& dss = DatabaseShardingState::get(db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
@@ -429,7 +429,7 @@ Status renameBetweenDBs(OperationContext* opCtx,
{
auto& dss = DatabaseShardingState::get(sourceDB);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
diff --git a/src/mongo/db/catalog_raii.cpp b/src/mongo/db/catalog_raii.cpp
index ea15f87137d..b3f109c90e5 100644
--- a/src/mongo/db/catalog_raii.cpp
+++ b/src/mongo/db/catalog_raii.cpp
@@ -51,7 +51,7 @@ AutoGetDb::AutoGetDb(OperationContext* opCtx, StringData dbName, LockMode mode,
}()) {
if (_db) {
auto& dss = DatabaseShardingState::get(_db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
}
@@ -184,7 +184,7 @@ AutoGetOrCreateDb::AutoGetOrCreateDb(OperationContext* opCtx,
}
auto& dss = DatabaseShardingState::get(_db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
diff --git a/src/mongo/db/commands/create_indexes.cpp b/src/mongo/db/commands/create_indexes.cpp
index 5a1eeda9117..227c4d843a1 100644
--- a/src/mongo/db/commands/create_indexes.cpp
+++ b/src/mongo/db/commands/create_indexes.cpp
@@ -361,7 +361,7 @@ Database* getOrCreateDatabase(OperationContext* opCtx, StringData dbName, Lock::
*/
void checkDatabaseShardingState(OperationContext* opCtx, Database* db) {
auto& dss = DatabaseShardingState::get(db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
diff --git a/src/mongo/db/index_builds_coordinator.cpp b/src/mongo/db/index_builds_coordinator.cpp
index 0b123fe08eb..b25bba1f5fb 100644
--- a/src/mongo/db/index_builds_coordinator.cpp
+++ b/src/mongo/db/index_builds_coordinator.cpp
@@ -919,7 +919,7 @@ void IndexBuildsCoordinator::_buildIndex(OperationContext* opCtx,
auto db = DatabaseHolder::get(opCtx)->getDb(opCtx, nss.db());
if (db) {
auto& dss = DatabaseShardingState::get(db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
dss.checkDbVersion(opCtx, dssLock);
}
diff --git a/src/mongo/db/s/active_migrations_registry.cpp b/src/mongo/db/s/active_migrations_registry.cpp
index f8e26472a8d..55cbfecfa9c 100644
--- a/src/mongo/db/s/active_migrations_registry.cpp
+++ b/src/mongo/db/s/active_migrations_registry.cpp
@@ -121,7 +121,7 @@ BSONObj ActiveMigrationsRegistry::getActiveMigrationStatusReport(OperationContex
// Lock the collection so nothing changes while we're getting the migration report.
AutoGetCollection autoColl(opCtx, nss.get(), MODE_IS);
auto csr = CollectionShardingRuntime::get(opCtx, nss.get());
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
if (auto msm = MigrationSourceManager::get(csr, csrLock)) {
return msm->getMigrationStatusReport();
diff --git a/src/mongo/db/s/collection_sharding_state.cpp b/src/mongo/db/s/collection_sharding_state.cpp
index 0d8871a0f45..e0dd987600d 100644
--- a/src/mongo/db/s/collection_sharding_state.cpp
+++ b/src/mongo/db/s/collection_sharding_state.cpp
@@ -218,7 +218,7 @@ void CollectionShardingState::checkShardVersionOrThrow(OperationContext* opCtx)
metadata->isSharded() ? metadata->getShardVersion() : ChunkVersion::UNSHARDED();
auto criticalSectionSignal = [&] {
- auto csrLock = CSRLock::lock(opCtx, this);
+ auto csrLock = CSRLock::lockShared(opCtx, this);
return _critSec.getSignal(opCtx->lockState()->isWriteLocked()
? ShardingMigrationCriticalSection::kWrite
: ShardingMigrationCriticalSection::kRead);
diff --git a/src/mongo/db/s/flush_database_cache_updates_command.cpp b/src/mongo/db/s/flush_database_cache_updates_command.cpp
index 13429421b43..f1c6009329d 100644
--- a/src/mongo/db/s/flush_database_cache_updates_command.cpp
+++ b/src/mongo/db/s/flush_database_cache_updates_command.cpp
@@ -129,7 +129,7 @@ public:
// propagated back to this shard. This ensures the read your own writes causal
// consistency guarantee.
auto& dss = DatabaseShardingState::get(autoDb.getDb());
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
if (auto criticalSectionSignal = dss.getCriticalSectionSignal(
ShardingMigrationCriticalSection::kRead, dssLock)) {
diff --git a/src/mongo/db/s/get_database_version_command.cpp b/src/mongo/db/s/get_database_version_command.cpp
index 71fc3e4b8ad..899c8c1e33f 100644
--- a/src/mongo/db/s/get_database_version_command.cpp
+++ b/src/mongo/db/s/get_database_version_command.cpp
@@ -80,7 +80,7 @@ public:
AutoGetDb autoDb(opCtx, _targetDb(), MODE_IS);
if (auto db = autoDb.getDb()) {
auto& dss = DatabaseShardingState::get(db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
if (auto dbVersion = dss.getDbVersion(opCtx, dssLock)) {
versionObj = dbVersion->toBSON();
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
index aa21bce528a..2a751999ca4 100644
--- a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
+++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp
@@ -76,7 +76,7 @@ public:
{
auto csr = CollectionShardingRuntime::get(opCtx, *nss);
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
if (auto msm = MigrationSourceManager::get(csr, csrLock)) {
// It is now safe to access the cloner
diff --git a/src/mongo/db/s/op_observer_sharding_impl.cpp b/src/mongo/db/s/op_observer_sharding_impl.cpp
index 1cc5844cde3..2bd4165b89f 100644
--- a/src/mongo/db/s/op_observer_sharding_impl.cpp
+++ b/src/mongo/db/s/op_observer_sharding_impl.cpp
@@ -80,7 +80,7 @@ bool OpObserverShardingImpl::isMigrating(OperationContext* opCtx,
NamespaceString const& nss,
BSONObj const& docToDelete) {
auto csr = CollectionShardingRuntime::get(opCtx, nss);
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
return isMigratingWithCSRLock(csr, csrLock, docToDelete);
}
@@ -111,7 +111,7 @@ void OpObserverShardingImpl::shardObserveInsertOp(OperationContext* opCtx,
return;
}
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
auto msm = MigrationSourceManager::get(csr, csrLock);
if (msm) {
msm->getCloner()->onInsertOp(opCtx, insertedDoc, opTime);
@@ -133,7 +133,7 @@ void OpObserverShardingImpl::shardObserveUpdateOp(OperationContext* opCtx,
return;
}
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
auto msm = MigrationSourceManager::get(csr, csrLock);
if (msm) {
msm->getCloner()->onUpdateOp(opCtx, preImageDoc, postImageDoc, opTime, prePostImageOpTime);
@@ -154,7 +154,7 @@ void OpObserverShardingImpl::shardObserveDeleteOp(OperationContext* opCtx,
return;
}
- auto csrLock = CollectionShardingRuntime::CSRLock::lock(opCtx, csr);
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
auto msm = MigrationSourceManager::get(csr, csrLock);
if (msm && getIsMigrating(opCtx)) {
diff --git a/src/mongo/db/s/shard_filtering_metadata_refresh.cpp b/src/mongo/db/s/shard_filtering_metadata_refresh.cpp
index e8de649a76e..78dbafcae2d 100644
--- a/src/mongo/db/s/shard_filtering_metadata_refresh.cpp
+++ b/src/mongo/db/s/shard_filtering_metadata_refresh.cpp
@@ -249,7 +249,7 @@ void forceDatabaseRefresh(OperationContext* opCtx, const StringData dbName) {
}
auto& dss = DatabaseShardingState::get(db);
- auto dssLock = DatabaseShardingState::DSSLock::lock(opCtx, &dss);
+ auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, &dss);
const auto cachedDbVersion = dss.getDbVersion(opCtx, dssLock);
if (cachedDbVersion && cachedDbVersion->getUuid() == refreshedDbVersion.getUuid() &&
diff --git a/src/mongo/db/s/sharding_state_lock.h b/src/mongo/db/s/sharding_state_lock.h
index 620cd5f53a0..98db5e58e79 100644
--- a/src/mongo/db/s/sharding_state_lock.h
+++ b/src/mongo/db/s/sharding_state_lock.h
@@ -47,7 +47,8 @@ public:
* Locks the sharding state object with the sharding state object's ResourceMutex in MODE_IS.
* When the object goes out of scope, the ResourceMutex will be unlocked.
*/
- static ShardingStateLock<ShardingState> lock(OperationContext* opCtx, ShardingState* state);
+ static ShardingStateLock<ShardingState> lockShared(OperationContext* opCtx,
+ ShardingState* state);
/**
* Follows the same functionality as the ShardingStateLock lock method, except that
@@ -81,8 +82,8 @@ ShardingStateLock<ShardingState>::ShardingStateLock(OperationContext* opCtx,
}()) {}
template <class ShardingState>
-ShardingStateLock<ShardingState> ShardingStateLock<ShardingState>::lock(OperationContext* opCtx,
- ShardingState* state) {
+ShardingStateLock<ShardingState> ShardingStateLock<ShardingState>::lockShared(
+ OperationContext* opCtx, ShardingState* state) {
return ShardingStateLock(opCtx, state, MODE_IS);
}