summaryrefslogtreecommitdiff
path: root/src/mongo/db/repair.cpp
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-08-14 10:23:04 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-09-02 23:53:39 +0000
commitbf5914a20b596ba3bde772b42e579e028f733bac (patch)
tree2b26469571786d9adb5e95c47990c2416bfab9c4 /src/mongo/db/repair.cpp
parent6b3e341703b781bb1ff7b1263406a0f1d28dd77c (diff)
downloadmongo-bf5914a20b596ba3bde772b42e579e028f733bac.tar.gz
SERVER-50317 Const correct uses of Collection
Most of the code should only need a const Collection now. AutoGetCollection returns a const Collection by default. There is a placeholder getWritableCollection() interface that will handle the necessary steps we need for lock free reads in the future. Added some operators to AutoGetCollection so it behaves more like a smart pointer.
Diffstat (limited to 'src/mongo/db/repair.cpp')
-rw-r--r--src/mongo/db/repair.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/repair.cpp b/src/mongo/db/repair.cpp
index b892165cd44..0c06a70d3f9 100644
--- a/src/mongo/db/repair.cpp
+++ b/src/mongo/db/repair.cpp
@@ -201,12 +201,14 @@ Status repairCollection(OperationContext* opCtx,
LOGV2(21027, "Repairing collection", "namespace"_attr = nss);
- auto collection = CollectionCatalog::get(opCtx).lookupCollectionByNamespace(opCtx, nss);
+ auto collection =
+ CollectionCatalog::get(opCtx).lookupCollectionByNamespaceForMetadataWrite(opCtx, nss);
Status status = engine->repairRecordStore(opCtx, collection->getCatalogId(), nss);
// Need to lookup from catalog again because the old collection object was invalidated by
// repairRecordStore.
- collection = CollectionCatalog::get(opCtx).lookupCollectionByNamespace(opCtx, nss);
+ collection =
+ CollectionCatalog::get(opCtx).lookupCollectionByNamespaceForMetadataWrite(opCtx, nss);
// If data was modified during repairRecordStore, we know to rebuild indexes without needing
// to run an expensive collection validation.