1
0
Fork 0

xfs: remove unnecessary int returns from deferred refcount functions

Remove the return value from the functions that schedule deferred
refcount operations since they never fail and do not return status.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
alistair/sunxi64-5.4-dsi
Darrick J. Wong 2019-08-26 17:06:04 -07:00
parent bc46ac6471
commit 74b4c5d4a9
5 changed files with 36 additions and 61 deletions

View File

@ -4393,12 +4393,9 @@ xfs_bmapi_write(
* If this is a CoW allocation, record the data in * If this is a CoW allocation, record the data in
* the refcount btree for orphan recovery. * the refcount btree for orphan recovery.
*/ */
if (whichfork == XFS_COW_FORK) { if (whichfork == XFS_COW_FORK)
error = xfs_refcount_alloc_cow_extent(tp, xfs_refcount_alloc_cow_extent(tp, bma.blkno,
bma.blkno, bma.length); bma.length);
if (error)
goto error0;
}
} }
/* Deal with the allocated space we found. */ /* Deal with the allocated space we found. */
@ -4532,12 +4529,8 @@ xfs_bmapi_convert_delalloc(
*imap = bma.got; *imap = bma.got;
*seq = READ_ONCE(ifp->if_seq); *seq = READ_ONCE(ifp->if_seq);
if (whichfork == XFS_COW_FORK) { if (whichfork == XFS_COW_FORK)
error = xfs_refcount_alloc_cow_extent(tp, bma.blkno, xfs_refcount_alloc_cow_extent(tp, bma.blkno, bma.length);
bma.length);
if (error)
goto out_finish;
}
error = xfs_bmap_btree_to_extents(tp, ip, bma.cur, &bma.logflags, error = xfs_bmap_btree_to_extents(tp, ip, bma.cur, &bma.logflags,
whichfork); whichfork);
@ -5148,9 +5141,7 @@ xfs_bmap_del_extent_real(
*/ */
if (do_fx && !(bflags & XFS_BMAPI_REMAP)) { if (do_fx && !(bflags & XFS_BMAPI_REMAP)) {
if (xfs_is_reflink_inode(ip) && whichfork == XFS_DATA_FORK) { if (xfs_is_reflink_inode(ip) && whichfork == XFS_DATA_FORK) {
error = xfs_refcount_decrease_extent(tp, del); xfs_refcount_decrease_extent(tp, del);
if (error)
goto done;
} else { } else {
__xfs_bmap_add_free(tp, del->br_startblock, __xfs_bmap_add_free(tp, del->br_startblock,
del->br_blockcount, NULL, del->br_blockcount, NULL,

View File

@ -1174,7 +1174,7 @@ out_cur:
/* /*
* Record a refcount intent for later processing. * Record a refcount intent for later processing.
*/ */
static int static void
__xfs_refcount_add( __xfs_refcount_add(
struct xfs_trans *tp, struct xfs_trans *tp,
enum xfs_refcount_intent_type type, enum xfs_refcount_intent_type type,
@ -1196,37 +1196,36 @@ __xfs_refcount_add(
ri->ri_blockcount = blockcount; ri->ri_blockcount = blockcount;
xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_REFCOUNT, &ri->ri_list); xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_REFCOUNT, &ri->ri_list);
return 0;
} }
/* /*
* Increase the reference count of the blocks backing a file's extent. * Increase the reference count of the blocks backing a file's extent.
*/ */
int void
xfs_refcount_increase_extent( xfs_refcount_increase_extent(
struct xfs_trans *tp, struct xfs_trans *tp,
struct xfs_bmbt_irec *PREV) struct xfs_bmbt_irec *PREV)
{ {
if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb)) if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb))
return 0; return;
return __xfs_refcount_add(tp, XFS_REFCOUNT_INCREASE, __xfs_refcount_add(tp, XFS_REFCOUNT_INCREASE, PREV->br_startblock,
PREV->br_startblock, PREV->br_blockcount); PREV->br_blockcount);
} }
/* /*
* Decrease the reference count of the blocks backing a file's extent. * Decrease the reference count of the blocks backing a file's extent.
*/ */
int void
xfs_refcount_decrease_extent( xfs_refcount_decrease_extent(
struct xfs_trans *tp, struct xfs_trans *tp,
struct xfs_bmbt_irec *PREV) struct xfs_bmbt_irec *PREV)
{ {
if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb)) if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb))
return 0; return;
return __xfs_refcount_add(tp, XFS_REFCOUNT_DECREASE, __xfs_refcount_add(tp, XFS_REFCOUNT_DECREASE, PREV->br_startblock,
PREV->br_startblock, PREV->br_blockcount); PREV->br_blockcount);
} }
/* /*
@ -1541,30 +1540,26 @@ __xfs_refcount_cow_free(
} }
/* Record a CoW staging extent in the refcount btree. */ /* Record a CoW staging extent in the refcount btree. */
int void
xfs_refcount_alloc_cow_extent( xfs_refcount_alloc_cow_extent(
struct xfs_trans *tp, struct xfs_trans *tp,
xfs_fsblock_t fsb, xfs_fsblock_t fsb,
xfs_extlen_t len) xfs_extlen_t len)
{ {
struct xfs_mount *mp = tp->t_mountp; struct xfs_mount *mp = tp->t_mountp;
int error;
if (!xfs_sb_version_hasreflink(&mp->m_sb)) if (!xfs_sb_version_hasreflink(&mp->m_sb))
return 0; return;
error = __xfs_refcount_add(tp, XFS_REFCOUNT_ALLOC_COW, fsb, len); __xfs_refcount_add(tp, XFS_REFCOUNT_ALLOC_COW, fsb, len);
if (error)
return error;
/* Add rmap entry */ /* Add rmap entry */
xfs_rmap_alloc_extent(tp, XFS_FSB_TO_AGNO(mp, fsb), xfs_rmap_alloc_extent(tp, XFS_FSB_TO_AGNO(mp, fsb),
XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW); XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW);
return 0;
} }
/* Forget a CoW staging event in the refcount btree. */ /* Forget a CoW staging event in the refcount btree. */
int void
xfs_refcount_free_cow_extent( xfs_refcount_free_cow_extent(
struct xfs_trans *tp, struct xfs_trans *tp,
xfs_fsblock_t fsb, xfs_fsblock_t fsb,
@ -1573,12 +1568,12 @@ xfs_refcount_free_cow_extent(
struct xfs_mount *mp = tp->t_mountp; struct xfs_mount *mp = tp->t_mountp;
if (!xfs_sb_version_hasreflink(&mp->m_sb)) if (!xfs_sb_version_hasreflink(&mp->m_sb))
return 0; return;
/* Remove rmap entry */ /* Remove rmap entry */
xfs_rmap_free_extent(tp, XFS_FSB_TO_AGNO(mp, fsb), xfs_rmap_free_extent(tp, XFS_FSB_TO_AGNO(mp, fsb),
XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW); XFS_FSB_TO_AGBNO(mp, fsb), len, XFS_RMAP_OWN_COW);
return __xfs_refcount_add(tp, XFS_REFCOUNT_FREE_COW, fsb, len); __xfs_refcount_add(tp, XFS_REFCOUNT_FREE_COW, fsb, len);
} }
struct xfs_refcount_recovery { struct xfs_refcount_recovery {
@ -1676,10 +1671,8 @@ xfs_refcount_recover_cow_leftovers(
/* Free the orphan record */ /* Free the orphan record */
agbno = rr->rr_rrec.rc_startblock - XFS_REFC_COW_START; agbno = rr->rr_rrec.rc_startblock - XFS_REFC_COW_START;
fsb = XFS_AGB_TO_FSB(mp, agno, agbno); fsb = XFS_AGB_TO_FSB(mp, agno, agbno);
error = xfs_refcount_free_cow_extent(tp, fsb, xfs_refcount_free_cow_extent(tp, fsb,
rr->rr_rrec.rc_blockcount); rr->rr_rrec.rc_blockcount);
if (error)
goto out_trans;
/* Free the block. */ /* Free the block. */
xfs_bmap_add_free(tp, fsb, rr->rr_rrec.rc_blockcount, NULL); xfs_bmap_add_free(tp, fsb, rr->rr_rrec.rc_blockcount, NULL);

View File

@ -29,9 +29,9 @@ struct xfs_refcount_intent {
xfs_extlen_t ri_blockcount; xfs_extlen_t ri_blockcount;
}; };
extern int xfs_refcount_increase_extent(struct xfs_trans *tp, void xfs_refcount_increase_extent(struct xfs_trans *tp,
struct xfs_bmbt_irec *irec); struct xfs_bmbt_irec *irec);
extern int xfs_refcount_decrease_extent(struct xfs_trans *tp, void xfs_refcount_decrease_extent(struct xfs_trans *tp,
struct xfs_bmbt_irec *irec); struct xfs_bmbt_irec *irec);
extern void xfs_refcount_finish_one_cleanup(struct xfs_trans *tp, extern void xfs_refcount_finish_one_cleanup(struct xfs_trans *tp,
@ -45,10 +45,10 @@ extern int xfs_refcount_find_shared(struct xfs_btree_cur *cur,
xfs_agblock_t agbno, xfs_extlen_t aglen, xfs_agblock_t *fbno, xfs_agblock_t agbno, xfs_extlen_t aglen, xfs_agblock_t *fbno,
xfs_extlen_t *flen, bool find_end_of_shared); xfs_extlen_t *flen, bool find_end_of_shared);
extern int xfs_refcount_alloc_cow_extent(struct xfs_trans *tp, void xfs_refcount_alloc_cow_extent(struct xfs_trans *tp, xfs_fsblock_t fsb,
xfs_fsblock_t fsb, xfs_extlen_t len); xfs_extlen_t len);
extern int xfs_refcount_free_cow_extent(struct xfs_trans *tp, void xfs_refcount_free_cow_extent(struct xfs_trans *tp, xfs_fsblock_t fsb,
xfs_fsblock_t fsb, xfs_extlen_t len); xfs_extlen_t len);
extern int xfs_refcount_recover_cow_leftovers(struct xfs_mount *mp, extern int xfs_refcount_recover_cow_leftovers(struct xfs_mount *mp,
xfs_agnumber_t agno); xfs_agnumber_t agno);

View File

@ -555,26 +555,24 @@ xfs_cui_recover(
irec.br_blockcount = new_len; irec.br_blockcount = new_len;
switch (type) { switch (type) {
case XFS_REFCOUNT_INCREASE: case XFS_REFCOUNT_INCREASE:
error = xfs_refcount_increase_extent(tp, &irec); xfs_refcount_increase_extent(tp, &irec);
break; break;
case XFS_REFCOUNT_DECREASE: case XFS_REFCOUNT_DECREASE:
error = xfs_refcount_decrease_extent(tp, &irec); xfs_refcount_decrease_extent(tp, &irec);
break; break;
case XFS_REFCOUNT_ALLOC_COW: case XFS_REFCOUNT_ALLOC_COW:
error = xfs_refcount_alloc_cow_extent(tp, xfs_refcount_alloc_cow_extent(tp,
irec.br_startblock, irec.br_startblock,
irec.br_blockcount); irec.br_blockcount);
break; break;
case XFS_REFCOUNT_FREE_COW: case XFS_REFCOUNT_FREE_COW:
error = xfs_refcount_free_cow_extent(tp, xfs_refcount_free_cow_extent(tp,
irec.br_startblock, irec.br_startblock,
irec.br_blockcount); irec.br_blockcount);
break; break;
default: default:
ASSERT(0); ASSERT(0);
} }
if (error)
goto abort_error;
requeue_only = true; requeue_only = true;
} }
} }

View File

@ -495,10 +495,8 @@ xfs_reflink_cancel_cow_blocks(
ASSERT((*tpp)->t_firstblock == NULLFSBLOCK); ASSERT((*tpp)->t_firstblock == NULLFSBLOCK);
/* Free the CoW orphan record. */ /* Free the CoW orphan record. */
error = xfs_refcount_free_cow_extent(*tpp, xfs_refcount_free_cow_extent(*tpp, del.br_startblock,
del.br_startblock, del.br_blockcount); del.br_blockcount);
if (error)
break;
xfs_bmap_add_free(*tpp, del.br_startblock, xfs_bmap_add_free(*tpp, del.br_startblock,
del.br_blockcount, NULL); del.br_blockcount, NULL);
@ -675,10 +673,7 @@ xfs_reflink_end_cow_extent(
trace_xfs_reflink_cow_remap(ip, &del); trace_xfs_reflink_cow_remap(ip, &del);
/* Free the CoW orphan record. */ /* Free the CoW orphan record. */
error = xfs_refcount_free_cow_extent(tp, del.br_startblock, xfs_refcount_free_cow_extent(tp, del.br_startblock, del.br_blockcount);
del.br_blockcount);
if (error)
goto out_cancel;
/* Map the new blocks into the data fork. */ /* Map the new blocks into the data fork. */
error = xfs_bmap_map_extent(tp, ip, &del); error = xfs_bmap_map_extent(tp, ip, &del);
@ -1070,9 +1065,7 @@ xfs_reflink_remap_extent(
uirec.br_blockcount, uirec.br_startblock); uirec.br_blockcount, uirec.br_startblock);
/* Update the refcount tree */ /* Update the refcount tree */
error = xfs_refcount_increase_extent(tp, &uirec); xfs_refcount_increase_extent(tp, &uirec);
if (error)
goto out_cancel;
/* Map the new blocks into the data fork. */ /* Map the new blocks into the data fork. */
error = xfs_bmap_map_extent(tp, ip, &uirec); error = xfs_bmap_map_extent(tp, ip, &uirec);