diff options
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/cap.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/index_update.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/pdfile.cpp | 5 | ||||
-rw-r--r-- | src/mongo/db/pdfile.h | 2 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/mongo/db/cap.cpp b/src/mongo/db/cap.cpp index b51f0f25db6..6309eb6adb9 100644 --- a/src/mongo/db/cap.cpp +++ b/src/mongo/db/cap.cpp @@ -258,7 +258,7 @@ namespace mongo { } DiskLoc fr = theCapExtent()->firstRecord; - theDataFileMgr.deleteRecord(ns, fr.rec(), fr, true); // ZZZZZZZZZZZZ + theDataFileMgr.deleteRecord(this, ns, fr.rec(), fr, true); // ZZZZZZZZZZZZ compact(); if( ++passes > maxPasses ) { log() << "passes ns:" << ns << " len:" << len << " maxPasses: " << maxPasses << '\n'; @@ -353,7 +353,7 @@ namespace mongo { // Delete the newest record, and coalesce the new deleted // record with existing deleted records. - theDataFileMgr.deleteRecord(ns, curr.rec(), curr, true); + theDataFileMgr.deleteRecord(this, ns, curr.rec(), curr, true); compact(); // This is the case where we have not yet had to remove any diff --git a/src/mongo/db/index_update.cpp b/src/mongo/db/index_update.cpp index c062d89ebb5..23a28a3fc99 100644 --- a/src/mongo/db/index_update.cpp +++ b/src/mongo/db/index_update.cpp @@ -337,7 +337,7 @@ namespace mongo { log() << "\t fastBuildIndex dupsToDrop:" << dupsToDrop.size() << endl; for( set<DiskLoc>::iterator i = dupsToDrop.begin(); i != dupsToDrop.end(); i++ ){ - theDataFileMgr.deleteRecord( ns, i->rec(), *i, false /* cappedOk */ , true /* noWarn */ , isMaster( ns ) /* logOp */ ); + theDataFileMgr.deleteRecord( d, ns, i->rec(), *i, false /* cappedOk */ , true /* noWarn */ , isMaster( ns ) /* logOp */ ); getDur().commitIfNeeded(); } @@ -384,7 +384,7 @@ namespace mongo { bool ok = cc->advance(); ClientCursor::YieldData yieldData; massert( 16093, "after yield cursor deleted" , cc->prepareToYield( yieldData ) ); - theDataFileMgr.deleteRecord( ns, toDelete.rec(), toDelete, false, true , true ); + theDataFileMgr.deleteRecord( d, ns, toDelete.rec(), toDelete, false, true , true ); if( !cc->recoverFromYield( yieldData ) ) { cc.release(); if( !ok ) { diff --git a/src/mongo/db/pdfile.cpp b/src/mongo/db/pdfile.cpp index b37c0d78fd1..ae13301060b 100644 --- a/src/mongo/db/pdfile.cpp +++ b/src/mongo/db/pdfile.cpp @@ -1065,9 +1065,12 @@ namespace mongo { } void DataFileMgr::deleteRecord(const char *ns, Record *todelete, const DiskLoc& dl, bool cappedOK, bool noWarn, bool doLog ) { + deleteRecord( nsdetails(ns), ns, todelete, dl, cappedOK, noWarn, doLog ); + } + + void DataFileMgr::deleteRecord(NamespaceDetails* d, const char *ns, Record *todelete, const DiskLoc& dl, bool cappedOK, bool noWarn, bool doLog ) { dassert( todelete == dl.rec() ); - NamespaceDetails* d = nsdetails(ns); if ( d->isCapped() && !cappedOK ) { out() << "failing remove on a capped ns " << ns << endl; uassert( 10089 , "can't remove from a capped collection" , 0 ); diff --git a/src/mongo/db/pdfile.h b/src/mongo/db/pdfile.h index 473d496cbbc..00833077793 100644 --- a/src/mongo/db/pdfile.h +++ b/src/mongo/db/pdfile.h @@ -156,6 +156,8 @@ namespace mongo { void deleteRecord(const char *ns, Record *todelete, const DiskLoc& dl, bool cappedOK = false, bool noWarn = false, bool logOp=false); + void deleteRecord(NamespaceDetails* d, const char *ns, Record *todelete, const DiskLoc& dl, bool cappedOK = false, bool noWarn = false, bool logOp=false); + /* does not clean up indexes, etc. : just deletes the record in the pdfile. use deleteRecord() to unindex */ void _deleteRecord(NamespaceDetails *d, const char *ns, Record *todelete, const DiskLoc& dl); |