summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/collection_sharding_state.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2018-07-01 12:52:02 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2018-07-11 15:42:11 -0400
commitc9c340ad6e9e1f33cb001a8375c62d6b16138c74 (patch)
tree5b4958fba84fc6a153ae0faadd88688d737eeb1b /src/mongo/db/s/collection_sharding_state.cpp
parentbccb252836954ac1963f8daf0d7bbdcf7af1d01c (diff)
downloadmongo-c9c340ad6e9e1f33cb001a8375c62d6b16138c74.tar.gz
SERVER-36054 Remove ScopedCollectionMetadata's operator bool
Diffstat (limited to 'src/mongo/db/s/collection_sharding_state.cpp')
-rw-r--r--src/mongo/db/s/collection_sharding_state.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mongo/db/s/collection_sharding_state.cpp b/src/mongo/db/s/collection_sharding_state.cpp
index ebbfc83891b..59f5b09f4d2 100644
--- a/src/mongo/db/s/collection_sharding_state.cpp
+++ b/src/mongo/db/s/collection_sharding_state.cpp
@@ -143,7 +143,7 @@ public:
for (auto& coll : _collections) {
ScopedCollectionMetadata metadata = coll.second->getMetadata(opCtx);
- if (metadata) {
+ if (metadata->isSharded()) {
versionB.appendTimestamp(coll.first, metadata->getShardVersion().toLong());
} else {
versionB.appendTimestamp(coll.first, ChunkVersion::UNSHARDED().toLong());
@@ -280,7 +280,7 @@ void CollectionShardingState::checkShardVersionOrThrow(OperationContext* opCtx)
// Set this for error messaging purposes before potentially returning false.
auto metadata = getMetadata(opCtx);
const auto wantedShardVersion =
- metadata ? metadata->getShardVersion() : ChunkVersion::UNSHARDED();
+ metadata->isSharded() ? metadata->getShardVersion() : ChunkVersion::UNSHARDED();
auto criticalSectionSignal = _critSec.getSignal(opCtx->lockState()->isWriteLocked()
? ShardingMigrationCriticalSection::kWrite
@@ -352,8 +352,10 @@ Status CollectionShardingState::waitForClean(OperationContext* opCtx,
// not hold reference on it, which would make it appear in use
auto metadata =
css->_metadataManager->getActiveMetadata(css->_metadataManager, boost::none);
- if (!metadata || metadata->getCollVersion().epoch() != epoch) {
- return {ErrorCodes::StaleShardVersion, "Collection being migrated was dropped"};
+
+ if (!metadata->isSharded() || metadata->getCollVersion().epoch() != epoch) {
+ return {ErrorCodes::ConflictingOperationInProgress,
+ "Collection being migrated was dropped"};
}
}