summaryrefslogtreecommitdiff
path: root/src/mongo/db/instance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/instance.cpp')
-rw-r--r--src/mongo/db/instance.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp
index e1cd9230d24..70ee99959e4 100644
--- a/src/mongo/db/instance.cpp
+++ b/src/mongo/db/instance.cpp
@@ -982,13 +982,6 @@ void insertMultiVector(OperationContext* txn,
CurOp& op,
vector<BSONObj>::iterator begin,
vector<BSONObj>::iterator end) {
- for (vector<BSONObj>::iterator it = begin; it != end; it++) {
- StatusWith<BSONObj> fixed = fixDocumentForInsert(*it);
- uassertStatusOK(fixed.getStatus());
- if (!fixed.getValue().isEmpty())
- *it = fixed.getValue();
- }
-
try {
WriteUnitOfWork wunit(txn);
Collection* collection = ctx.db()->getCollection(ns);
@@ -1025,6 +1018,13 @@ NOINLINE_DECL void insertMulti(OperationContext* txn,
int64_t chunkSize = 0;
for (vector<BSONObj>::iterator it = docs.begin(); it != docs.end(); it++) {
+ StatusWith<BSONObj> fixed = fixDocumentForInsert(*it);
+ uassertStatusOK(fixed.getStatus());
+ if (!fixed.getValue().isEmpty())
+ *it = fixed.getValue();
+ }
+
+ for (vector<BSONObj>::iterator it = docs.begin(); it != docs.end(); it++) {
chunkSize += (*it).objsize();
// Limit chunk size, actual size chosen is a tradeoff: larger sizes are more efficient,
// but smaller chunk sizes allow yielding to other threads and lower chance of WCEs