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;