From 8c3fda4318adc71899bc41486d5616da3a91a688 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 24 Feb 2010 10:50:41 +1030 Subject: [PATCH 1/1] tdb: don't truncate tdb on recovery The current recovery code truncates the tdb file on recovery. This is fine if recovery is only done on first open, but is a really bad idea as we move to allowing recovery on "live" databases. Signed-off-by: Rusty Russell --- lib/tdb/common/transaction.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/tdb/common/transaction.c b/lib/tdb/common/transaction.c index 763afffc528..3d267af2b04 100644 --- a/lib/tdb/common/transaction.c +++ b/lib/tdb/common/transaction.c @@ -1180,16 +1180,6 @@ int tdb_transaction_recover(struct tdb_context *tdb) return -1; } - /* reduce the file size to the old size */ - tdb_munmap(tdb); - if (ftruncate(tdb->fd, recovery_eof) != 0) { - TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to reduce to recovery size\n")); - tdb->ecode = TDB_ERR_IO; - return -1; - } - tdb->map_size = recovery_eof; - tdb_mmap(tdb); - if (transaction_sync(tdb, 0, recovery_eof) == -1) { TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to sync2 recovery\n")); tdb->ecode = TDB_ERR_IO; -- 2.34.1