mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
xfs: simplify usage of the rcur local variable in xfs_refcount_finish_one
Only update rcur when we know the final *pcur value. Inspired-by: Christoph Hellwig <hch@lst.de> [djwong: don't leave the caller with a dangling ref] Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
bac3f78492
commit
e51987a12c
@ -1341,7 +1341,7 @@ xfs_refcount_finish_one(
|
|||||||
struct xfs_btree_cur **pcur)
|
struct xfs_btree_cur **pcur)
|
||||||
{
|
{
|
||||||
struct xfs_mount *mp = tp->t_mountp;
|
struct xfs_mount *mp = tp->t_mountp;
|
||||||
struct xfs_btree_cur *rcur;
|
struct xfs_btree_cur *rcur = *pcur;
|
||||||
struct xfs_buf *agbp = NULL;
|
struct xfs_buf *agbp = NULL;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
xfs_agblock_t bno;
|
xfs_agblock_t bno;
|
||||||
@ -1359,7 +1359,6 @@ xfs_refcount_finish_one(
|
|||||||
* If we haven't gotten a cursor or the cursor AG doesn't match
|
* If we haven't gotten a cursor or the cursor AG doesn't match
|
||||||
* the startblock, get one now.
|
* the startblock, get one now.
|
||||||
*/
|
*/
|
||||||
rcur = *pcur;
|
|
||||||
if (rcur != NULL && rcur->bc_ag.pag != ri->ri_pag) {
|
if (rcur != NULL && rcur->bc_ag.pag != ri->ri_pag) {
|
||||||
nr_ops = rcur->bc_refc.nr_ops;
|
nr_ops = rcur->bc_refc.nr_ops;
|
||||||
shape_changes = rcur->bc_refc.shape_changes;
|
shape_changes = rcur->bc_refc.shape_changes;
|
||||||
@ -1373,11 +1372,11 @@ xfs_refcount_finish_one(
|
|||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
rcur = xfs_refcountbt_init_cursor(mp, tp, agbp, ri->ri_pag);
|
*pcur = rcur = xfs_refcountbt_init_cursor(mp, tp, agbp,
|
||||||
|
ri->ri_pag);
|
||||||
rcur->bc_refc.nr_ops = nr_ops;
|
rcur->bc_refc.nr_ops = nr_ops;
|
||||||
rcur->bc_refc.shape_changes = shape_changes;
|
rcur->bc_refc.shape_changes = shape_changes;
|
||||||
}
|
}
|
||||||
*pcur = rcur;
|
|
||||||
|
|
||||||
switch (ri->ri_type) {
|
switch (ri->ri_type) {
|
||||||
case XFS_REFCOUNT_INCREASE:
|
case XFS_REFCOUNT_INCREASE:
|
||||||
|
Loading…
Reference in New Issue
Block a user