summaryrefslogtreecommitdiff
path: root/src/mongo/s/catalog/dist_lock_catalog_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/catalog/dist_lock_catalog_impl.cpp')
-rw-r--r--src/mongo/s/catalog/dist_lock_catalog_impl.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/mongo/s/catalog/dist_lock_catalog_impl.cpp b/src/mongo/s/catalog/dist_lock_catalog_impl.cpp
index 4acb81f2497..e95a04a2ed0 100644
--- a/src/mongo/s/catalog/dist_lock_catalog_impl.cpp
+++ b/src/mongo/s/catalog/dist_lock_catalog_impl.cpp
@@ -361,17 +361,18 @@ Status DistLockCatalogImpl::_unlock(OperationContext* opCtx, const FindAndModify
}
Status DistLockCatalogImpl::unlockAll(OperationContext* opCtx, const std::string& processID) {
- std::unique_ptr<BatchedUpdateDocument> updateDoc(new BatchedUpdateDocument());
- updateDoc->setQuery(BSON(LocksType::process(processID)));
- updateDoc->setUpdateExpr(BSON("$set" << BSON(LocksType::state(LocksType::UNLOCKED))));
- updateDoc->setUpsert(false);
- updateDoc->setMulti(true);
-
- std::unique_ptr<BatchedUpdateRequest> updateRequest(new BatchedUpdateRequest());
- updateRequest->addToUpdates(updateDoc.release());
-
- BatchedCommandRequest request(updateRequest.release());
- request.setNS(_locksNS);
+ BatchedCommandRequest request([&] {
+ write_ops::Update updateOp(_locksNS);
+ updateOp.setUpdates({[&] {
+ write_ops::UpdateOpEntry entry;
+ entry.setQ(BSON(LocksType::process(processID)));
+ entry.setU(BSON("$set" << BSON(LocksType::state(LocksType::UNLOCKED))));
+ entry.setUpsert(false);
+ entry.setMulti(true);
+ return entry;
+ }()});
+ return updateOp;
+ }());
request.setWriteConcern(kLocalWriteConcern.toBSON());
BSONObj cmdObj = request.toBSON();