Mercurial > nomad > experimental
changeset 1259:eb4cc36f8ed1
objstore: update obj_write to use cleanup txn entry callback
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sat, 17 Dec 2022 14:35:28 -0500 |
parents | 6fa5635525c9 |
children | a2e7e70338eb |
files | src/objstore/obj_txn.c |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/objstore/obj_txn.c Sat Dec 17 14:35:00 2022 -0500 +++ b/src/objstore/obj_txn.c Sat Dec 17 14:35:28 2022 -0500 @@ -165,16 +165,12 @@ page_unlock(page); } - txn_detach_objver(txn, ver); - return 0; err: /* drop the remaining dirty pages */ page_inval_range(ver, pgno, last_pgno - pgno + 1); - txn_detach_objver(txn, ver); - return ret; } @@ -183,7 +179,10 @@ /* drop the dirty pages */ page_inval_range(entry->write.ver, entry->write.pgno, entry->write.pgcnt); +} +static void __obj_write_cleanup(struct txn *txn, struct txn_entry *entry) +{ txn_detach_objver(txn, entry->write.ver); } @@ -205,6 +204,7 @@ entry->op = OP_WRITE; entry->perform = __obj_write_perform; entry->rollback = __obj_write_rollback; + entry->cleanup = __obj_write_cleanup; entry->write.ver = ver; entry->write.pgno = offset / PAGE_SIZE; entry->write.pgcnt = p2roundup(len, PAGE_SIZE) / PAGE_SIZE;