summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/minvalid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/minvalid.cpp')
-rw-r--r--src/mongo/db/repl/minvalid.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/repl/minvalid.cpp b/src/mongo/db/repl/minvalid.cpp
index 30a22a611ea..0005f364963 100644
--- a/src/mongo/db/repl/minvalid.cpp
+++ b/src/mongo/db/repl/minvalid.cpp
@@ -50,17 +50,20 @@ namespace {
} // namespace
void clearInitialSyncFlag(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock lk(txn->lockState(), "local", MODE_X);
Helpers::putSingleton(txn, minvalidNS, BSON("$unset" << initialSyncFlag));
}
void setInitialSyncFlag(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock lk(txn->lockState(), "local", MODE_X);
Helpers::putSingleton(txn, minvalidNS, BSON("$set" << initialSyncFlag));
}
bool getInitialSyncFlag() {
OperationContextImpl txn;
+ ScopedTransaction transaction(&txn, MODE_IX);
Lock::DBLock lk(txn.lockState(), "local", MODE_X);
BSONObj mv;
bool found = Helpers::getSingleton( &txn, minvalidNS, mv);
@@ -72,11 +75,13 @@ namespace {
}
void setMinValid(OperationContext* ctx, OpTime ts) {
+ ScopedTransaction transaction(ctx, MODE_IX);
Lock::DBLock lk(ctx->lockState(), "local", MODE_X);
Helpers::putSingleton(ctx, minvalidNS, BSON("$set" << BSON("ts" << ts)));
}
OpTime getMinValid(OperationContext* txn) {
+ ScopedTransaction transaction(txn, MODE_IS);
Lock::DBLock lk(txn->lockState(), "local", MODE_S);
BSONObj mv;
bool found = Helpers::getSingleton(txn, minvalidNS, mv);