diff options
Diffstat (limited to 'src/mongo/db/keys_collection_client_direct.cpp')
| -rw-r--r-- | src/mongo/db/keys_collection_client_direct.cpp | 16 |
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. |
