Mercurial > nomad
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;