summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
index 2f17cb04310..bb92b0c88c0 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
@@ -1050,7 +1050,8 @@ long long WiredTigerRecordStore::dataSize(OperationContext* opCtx) const {
}
long long WiredTigerRecordStore::numRecords(OperationContext* opCtx) const {
- return _sizeInfo->numRecords.load();
+ auto numRecords = _sizeInfo->numRecords.load();
+ return numRecords > 0 ? numRecords : 0;
}
int64_t WiredTigerRecordStore::storageSize(OperationContext* opCtx,
@@ -1966,12 +1967,9 @@ void WiredTigerRecordStore::_changeNumRecords(OperationContext* opCtx, int64_t d
opCtx->recoveryUnit()->onRollback([this, diff]() {
LOGV2_DEBUG(
22404, 3, "WiredTigerRecordStore: rolling back NumRecordsChange", "diff"_attr = -diff);
- if (_sizeInfo->numRecords.addAndFetch(-diff) < 0) {
- _sizeInfo->numRecords.store(0);
- }
+ _sizeInfo->numRecords.addAndFetch(-diff);
});
- if (_sizeInfo->numRecords.addAndFetch(diff) < 0)
- _sizeInfo->numRecords.store(0);
+ _sizeInfo->numRecords.addAndFetch(diff);
}
void WiredTigerRecordStore::_increaseDataSize(OperationContext* opCtx, int64_t amount) {