mirror of https://gitee.com/openkylin/linux.git
xfs: factor btree block freeing into a helper
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
196328ec97
commit
c46ee8ad78
|
@ -294,6 +294,19 @@ xfs_btree_sblock_verify_crc(
|
|||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
xfs_btree_free_block(
|
||||
struct xfs_btree_cur *cur,
|
||||
struct xfs_buf *bp)
|
||||
{
|
||||
int error;
|
||||
|
||||
error = cur->bc_ops->free_block(cur, bp);
|
||||
if (!error)
|
||||
XFS_BTREE_STATS_INC(cur, free);
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete the btree cursor.
|
||||
*/
|
||||
|
@ -3282,12 +3295,11 @@ xfs_btree_kill_iroot(
|
|||
#endif
|
||||
xfs_btree_copy_ptrs(cur, pp, cpp, numrecs);
|
||||
|
||||
error = cur->bc_ops->free_block(cur, cbp);
|
||||
error = xfs_btree_free_block(cur, cbp);
|
||||
if (error) {
|
||||
XFS_BTREE_TRACE_CURSOR(cur, XBT_ERROR);
|
||||
return error;
|
||||
}
|
||||
XFS_BTREE_STATS_INC(cur, free);
|
||||
|
||||
cur->bc_bufs[level - 1] = NULL;
|
||||
be16_add_cpu(&block->bb_level, -1);
|
||||
|
@ -3320,14 +3332,12 @@ xfs_btree_kill_root(
|
|||
*/
|
||||
cur->bc_ops->set_root(cur, newroot, -1);
|
||||
|
||||
error = cur->bc_ops->free_block(cur, bp);
|
||||
error = xfs_btree_free_block(cur, bp);
|
||||
if (error) {
|
||||
XFS_BTREE_TRACE_CURSOR(cur, XBT_ERROR);
|
||||
return error;
|
||||
}
|
||||
|
||||
XFS_BTREE_STATS_INC(cur, free);
|
||||
|
||||
cur->bc_bufs[level] = NULL;
|
||||
cur->bc_ra[level] = 0;
|
||||
cur->bc_nlevels--;
|
||||
|
@ -3833,10 +3843,9 @@ xfs_btree_delrec(
|
|||
}
|
||||
|
||||
/* Free the deleted block. */
|
||||
error = cur->bc_ops->free_block(cur, rbp);
|
||||
error = xfs_btree_free_block(cur, rbp);
|
||||
if (error)
|
||||
goto error0;
|
||||
XFS_BTREE_STATS_INC(cur, free);
|
||||
|
||||
/*
|
||||
* If we joined with the left neighbor, set the buffer in the
|
||||
|
|
Loading…
Reference in New Issue