changeset 855:6fa5635525c9

objstore: update obj_setattr 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:00 -0500
parents 9c372d07da55
children eb4cc36f8ed1
files src/objstore/obj_txn.c
diffstat 1 files changed, 9 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/objstore/obj_txn.c	Sat Dec 17 14:30:03 2022 -0500
+++ b/src/objstore/obj_txn.c	Sat Dec 17 14:35:00 2022 -0500
@@ -64,24 +64,20 @@
 static int __obj_setattr_perform(struct txn *txn, struct txn_entry *entry)
 {
 	struct objver *ver = entry->setattr.ver;
-	int ret;
 
-	ret = ver->obj->ops->setattr(ver,
-				     &ver->attrs,
-				     entry->setattr.changed);
-
-	txn_detach_objver(txn, ver);
-
-	return ret;
+	return ver->obj->ops->setattr(ver,
+				      &ver->attrs,
+				      entry->setattr.changed);
 }
 
 static void __obj_setattr_rollback(struct txn *txn, struct txn_entry *entry)
 {
-	struct objver *ver = entry->setattr.ver;
+	entry->setattr.ver->attrs = entry->setattr.old_attrs;
+}
 
-	ver->attrs = entry->setattr.old_attrs;
-
-	txn_detach_objver(txn, ver);
+static void __obj_setattr_cleanup(struct txn *txn, struct txn_entry *entry)
+{
+	txn_detach_objver(txn, entry->setattr.ver);
 }
 
 void obj_setattr(struct txn *txn, struct objver *ver, const struct nattr *attrs,
@@ -109,6 +105,7 @@
 	entry->op = OP_SETATTR;
 	entry->perform = __obj_setattr_perform;
 	entry->rollback = __obj_setattr_rollback;
+	entry->cleanup = __obj_setattr_cleanup;
 	entry->setattr.ver = ver;
 	entry->setattr.old_attrs = ver->attrs;
 	entry->setattr.changed = valid;