summaryrefslogtreecommitdiff
path: root/src/mongo/db/keys_collection_client_direct.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/keys_collection_client_direct.cpp')
-rw-r--r--src/mongo/db/keys_collection_client_direct.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/mongo/db/keys_collection_client_direct.cpp b/src/mongo/db/keys_collection_client_direct.cpp
index 0a2836a8f07..30048be948b 100644
--- a/src/mongo/db/keys_collection_client_direct.cpp
+++ b/src/mongo/db/keys_collection_client_direct.cpp
@@ -164,23 +164,13 @@ Status KeysCollectionClientDirect::_insert(OperationContext* opCtx,
const NamespaceString& nss,
const BSONObj& doc,
const WriteConcernOptions& writeConcern) {
- BatchedCommandRequest batchRequest([&] {
+ BatchedCommandRequest request([&] {
write_ops::InsertCommandRequest insertOp(nss);
insertOp.setDocuments({doc});
return insertOp;
}());
-
- // A request dispatched through a local client is served within the same thread that submits it
- // (so that the opCtx needs to be used as the vehicle to pass the WC to the ServiceEntryPoint).
- const auto originalWC = opCtx->getWriteConcern();
- ScopeGuard resetWCGuard([&] { opCtx->setWriteConcern(originalWC); });
- opCtx->setWriteConcern(writeConcern);
-
- const BSONObj cmdObj = [&] {
- BSONObjBuilder cmdObjBuilder;
- batchRequest.serialize(&cmdObjBuilder);
- return cmdObjBuilder.obj();
- }();
+ request.setWriteConcern(writeConcern.toBSON());
+ const BSONObj cmdObj = request.toBSON();
for (int retry = 1; retry <= kOnErrorNumRetries; ++retry) {
// Note: write commands can only be issued against a primary.