xfs: clean up xfs_btree_del_cursor callers
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 19 Jul 2018 19:29:10 +0000 (12:29 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Mon, 23 Jul 2018 16:08:00 +0000 (09:08 -0700)
Less trivial cleanups of the error argument to xfs_btree_del_cursor;
these require some minor code refactoring.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_refcount.c
fs/xfs/scrub/repair.c

index a2dfae6..9ef1f44 100644 (file)
@@ -1675,11 +1675,11 @@ xfs_refcount_recover_cow_leftovers(
        high.rc.rc_startblock = -1U;
        error = xfs_btree_query_range(cur, &low, &high,
                        xfs_refcount_recover_extent, &debris);
-       if (error)
-               goto out_cursor;
-       xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR);
+       xfs_btree_del_cursor(cur, error);
        xfs_trans_brelse(tp, agbp);
        xfs_trans_cancel(tp);
+       if (error)
+               goto out_free;
 
        /* Now iterate the list to free the leftovers */
        list_for_each_entry_safe(rr, n, &debris, rr_list) {
@@ -1727,11 +1727,6 @@ out_free:
                kmem_free(rr);
        }
        return error;
-
-out_cursor:
-       xfs_btree_del_cursor(cur, XFS_BTREE_ERROR);
-       xfs_trans_brelse(tp, agbp);
-       goto out_trans;
 }
 
 /* Is there a record covering a given extent? */
index 35c589a..ea39e2b 100644 (file)
@@ -747,9 +747,9 @@ xfs_repair_dispose_btree_block(
 
        /* Can we find any other rmappings? */
        error = xfs_rmap_has_other_keys(cur, agbno, 1, oinfo, &has_other_rmap);
+       xfs_btree_del_cursor(cur, error);
        if (error)
-               goto out_cur;
-       xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR);
+               goto out_free;
 
        /*
         * If there are other rmappings, this block is cross linked and must
@@ -779,8 +779,7 @@ xfs_repair_dispose_btree_block(
                return xfs_trans_roll_inode(&sc->tp, sc->ip);
        return xfs_repair_roll_ag_trans(sc);
 
-out_cur:
-       xfs_btree_del_cursor(cur, XFS_BTREE_ERROR);
+out_free:
        if (agf_bp != sc->sa.agf_bp)
                xfs_trans_brelse(sc->tp, agf_bp);
        return error;