X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftransaction.c;h=976ebd74f27e7ae3c10b98d8f8d930431f28233e;hp=b80cede7581b9f1c177b4cbbb801dbca3de089c2;hb=e1fd1d9623ef2f944374d67b573a6f1cf7a9ed12;hpb=788c3a4f3469afa00c7414451a5f93e584ce0187 diff --git a/ccan/tdb2/transaction.c b/ccan/tdb2/transaction.c index b80cede7..976ebd74 100644 --- a/ccan/tdb2/transaction.c +++ b/ccan/tdb2/transaction.c @@ -402,7 +402,7 @@ static void *transaction_direct(struct tdb_context *tdb, tdb_off_t off, return tdb->transaction->blocks[blk] + off % getpagesize(); /* Otherwise must be all not copied. */ - while (blk < end_blk) { + while (blk <= end_blk) { if (blk >= tdb->transaction->num_blocks) break; if (tdb->transaction->blocks[blk]) @@ -1080,7 +1080,8 @@ enum TDB_ERROR tdb_transaction_commit(struct tdb_context *tdb) #endif /* use a transaction cancel to free memory and remove the - transaction locks */ + transaction locks: it "restores" map_size, too. */ + tdb->transaction->old_map_size = tdb->file->map_size; _tdb_transaction_cancel(tdb); return tdb->last_error = TDB_SUCCESS;