summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/migration_source_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/migration_source_manager.cpp')
-rw-r--r--src/mongo/db/s/migration_source_manager.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp
index 3b98d03285b..a0368f6c262 100644
--- a/src/mongo/db/s/migration_source_manager.cpp
+++ b/src/mongo/db/s/migration_source_manager.cpp
@@ -143,6 +143,17 @@ std::shared_ptr<MigrationChunkClonerSource> MigrationSourceManager::getCurrentCl
return msm->_cloneDriver;
}
+// static
+bool MigrationSourceManager::isMigrating(OperationContext* opCtx,
+ NamespaceString const& nss,
+ BSONObj const& docToDelete) {
+ const auto scopedCsr =
+ CollectionShardingRuntime::assertCollectionLockedAndAcquireShared(opCtx, nss);
+ auto cloner = MigrationSourceManager::getCurrentCloner(*scopedCsr);
+
+ return cloner && cloner->isDocumentInMigratingChunk(docToDelete);
+}
+
MigrationSourceManager::MigrationSourceManager(OperationContext* opCtx,
ShardsvrMoveRange&& request,
WriteConcernOptions&& writeConcern,