summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/cap.cpp4
-rw-r--r--src/mongo/db/index_update.cpp4
-rw-r--r--src/mongo/db/pdfile.cpp5
-rw-r--r--src/mongo/db/pdfile.h2
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);