From: Rusty Russell Date: Mon, 22 Feb 2010 12:33:36 +0000 (+1030) Subject: tdb: don't reduce file size on transaction recovery. X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=3497b4d49241cb9d05fcfe34091e060bac4cb4f6;ds=sidebyside tdb: don't reduce file size on transaction recovery. There's little point in ever shrinking the file, and it definitely breaks in the case where a process has died during a transaction commit and other processes have the tdb mapped. Signed-off-by: Rusty Russell --- diff --git a/ccan/tdb/transaction.c b/ccan/tdb/transaction.c index 238034f3..6b539d40 100644 --- a/ccan/tdb/transaction.c +++ b/ccan/tdb/transaction.c @@ -1203,16 +1203,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;