From 66eead53c9d2480f2a464ef170920953431ad200 Mon Sep 17 00:00:00 2001 From: Matthew Ahrens Date: Fri, 24 Feb 2017 13:34:26 -0800 Subject: Clean up by-dnode code in dmu_tx.c https://github.com/zfsonlinux/zfs/commit/0eef1bde31d67091d3deed23fe2394f5a8bf2276 introduced some changes which we slightly improved the style of when porting to illumos. There is also one minor error-handling fix, in zap_add() the "zap" may become NULL in case of an error re-opening the ZAP. Originally suggested at: https://github.com/openzfs/openzfs/pull/276 Reviewed-by: Brian Behlendorf Reviewed by: Pavel Zakharov Signed-off-by: Matthew Ahrens Closes #5805 --- module/zfs/dmu_tx.c | 58 ++++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 32 deletions(-) (limited to 'module/zfs/dmu_tx.c') diff --git a/module/zfs/dmu_tx.c b/module/zfs/dmu_tx.c index 7c1801be4..4d4c74f51 100644 --- a/module/zfs/dmu_tx.c +++ b/module/zfs/dmu_tx.c @@ -119,7 +119,7 @@ dmu_tx_hold_dnode_impl(dmu_tx_t *tx, dnode_t *dn, enum dmu_tx_hold_type type, dmu_tx_hold_t *txh; if (dn != NULL) { - refcount_add(&dn->dn_holds, tx); + (void) refcount_add(&dn->dn_holds, tx); if (tx->tx_txg != 0) { mutex_enter(&dn->dn_mtx); /* @@ -163,7 +163,7 @@ dmu_tx_hold_object_impl(dmu_tx_t *tx, objset_t *os, uint64_t object, if (object != DMU_NEW_OBJECT) { err = dnode_hold(os, object, FTAG, &dn); - if (err) { + if (err != 0) { tx->tx_err = err; return (NULL); } @@ -175,7 +175,7 @@ dmu_tx_hold_object_impl(dmu_tx_t *tx, objset_t *os, uint64_t object, } void -dmu_tx_add_new_object(dmu_tx_t *tx, objset_t *os, dnode_t *dn) +dmu_tx_add_new_object(dmu_tx_t *tx, dnode_t *dn) { /* * If we're syncing, they can manipulate any object anyhow, and @@ -462,17 +462,16 @@ dmu_tx_hold_write(dmu_tx_t *tx, uint64_t object, uint64_t off, int len) { dmu_tx_hold_t *txh; - ASSERT(tx->tx_txg == 0); - ASSERT(len <= DMU_MAX_ACCESS); + ASSERT0(tx->tx_txg); + ASSERT3U(len, <=, DMU_MAX_ACCESS); ASSERT(len == 0 || UINT64_MAX - off >= len - 1); txh = dmu_tx_hold_object_impl(tx, tx->tx_objset, object, THT_WRITE, off, len); - if (txh == NULL) - return; - - dmu_tx_count_write(txh, off, len); - dmu_tx_count_dnode(txh); + if (txh != NULL) { + dmu_tx_count_write(txh, off, len); + dmu_tx_count_dnode(txh); + } } void @@ -480,16 +479,15 @@ dmu_tx_hold_write_by_dnode(dmu_tx_t *tx, dnode_t *dn, uint64_t off, int len) { dmu_tx_hold_t *txh; - ASSERT(tx->tx_txg == 0); - ASSERT(len <= DMU_MAX_ACCESS); + ASSERT0(tx->tx_txg); + ASSERT3U(len, <=, DMU_MAX_ACCESS); ASSERT(len == 0 || UINT64_MAX - off >= len - 1); txh = dmu_tx_hold_dnode_impl(tx, dn, THT_WRITE, off, len); - if (txh == NULL) - return; - - dmu_tx_count_write(txh, off, len); - dmu_tx_count_dnode(txh); + if (txh != NULL) { + dmu_tx_count_write(txh, off, len); + dmu_tx_count_dnode(txh); + } } static void @@ -792,9 +790,8 @@ dmu_tx_hold_free(dmu_tx_t *tx, uint64_t object, uint64_t off, uint64_t len) txh = dmu_tx_hold_object_impl(tx, tx->tx_objset, object, THT_FREE, off, len); - if (txh == NULL) - return; - (void) dmu_tx_hold_free_impl(txh, off, len); + if (txh != NULL) + (void) dmu_tx_hold_free_impl(txh, off, len); } void @@ -803,9 +800,8 @@ dmu_tx_hold_free_by_dnode(dmu_tx_t *tx, dnode_t *dn, uint64_t off, uint64_t len) dmu_tx_hold_t *txh; txh = dmu_tx_hold_dnode_impl(tx, dn, THT_FREE, off, len); - if (txh == NULL) - return; - (void) dmu_tx_hold_free_impl(txh, off, len); + if (txh != NULL) + (void) dmu_tx_hold_free_impl(txh, off, len); } static void @@ -916,13 +912,12 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name) { dmu_tx_hold_t *txh; - ASSERT(tx->tx_txg == 0); + ASSERT0(tx->tx_txg); txh = dmu_tx_hold_object_impl(tx, tx->tx_objset, object, THT_ZAP, add, (uintptr_t)name); - if (txh == NULL) - return; - dmu_tx_hold_zap_impl(txh, add, name); + if (txh != NULL) + dmu_tx_hold_zap_impl(txh, add, name); } void @@ -930,13 +925,12 @@ dmu_tx_hold_zap_by_dnode(dmu_tx_t *tx, dnode_t *dn, int add, const char *name) { dmu_tx_hold_t *txh; - ASSERT(tx->tx_txg == 0); + ASSERT0(tx->tx_txg); ASSERT(dn != NULL); txh = dmu_tx_hold_dnode_impl(tx, dn, THT_ZAP, add, (uintptr_t)name); - if (txh == NULL) - return; - dmu_tx_hold_zap_impl(txh, add, name); + if (txh != NULL) + dmu_tx_hold_zap_impl(txh, add, name); } void @@ -957,7 +951,7 @@ dmu_tx_hold_bonus_by_dnode(dmu_tx_t *tx, dnode_t *dn) { dmu_tx_hold_t *txh; - ASSERT(tx->tx_txg == 0); + ASSERT0(tx->tx_txg); txh = dmu_tx_hold_dnode_impl(tx, dn, THT_BONUS, 0, 0); if (txh) -- cgit v1.2.3