xfs: return the allocated transaction from xchk_trans_alloc_empty

xchk_trans_alloc_empty can't return errors, so return the allocated
transaction directly instead of an output double pointer argument.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
Christoph Hellwig 2025-07-16 14:43:16 +02:00 committed by Carlos Maiolino
parent d8e1ea43e5
commit 92176e3246
11 changed files with 18 additions and 41 deletions

View File

@ -866,12 +866,11 @@ xchk_trans_cancel(
sc->tp = NULL;
}
int
void
xchk_trans_alloc_empty(
struct xfs_scrub *sc)
{
sc->tp = xfs_trans_alloc_empty(sc->mp);
return 0;
}
/*
@ -893,7 +892,8 @@ xchk_trans_alloc(
return xfs_trans_alloc(sc->mp, &M_RES(sc->mp)->tr_itruncate,
resblks, 0, 0, &sc->tp);
return xchk_trans_alloc_empty(sc);
xchk_trans_alloc_empty(sc);
return 0;
}
/* Set us up with a transaction and an empty context. */

View File

@ -7,7 +7,7 @@
#define __XFS_SCRUB_COMMON_H__
int xchk_trans_alloc(struct xfs_scrub *sc, uint resblks);
int xchk_trans_alloc_empty(struct xfs_scrub *sc);
void xchk_trans_alloc_empty(struct xfs_scrub *sc);
void xchk_trans_cancel(struct xfs_scrub *sc);
bool xchk_process_error(struct xfs_scrub *sc, xfs_agnumber_t agno,

View File

@ -1289,9 +1289,7 @@ xrep_dir_scan_dirtree(
if (sc->ilock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL))
xchk_iunlock(sc, sc->ilock_flags & (XFS_ILOCK_SHARED |
XFS_ILOCK_EXCL));
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
while ((error = xchk_iscan_iter(&rd->pscan.iscan, &ip)) == 1) {
bool flush;
@ -1317,9 +1315,7 @@ xrep_dir_scan_dirtree(
if (error)
break;
error = xchk_trans_alloc_empty(sc);
if (error)
break;
xchk_trans_alloc_empty(sc);
}
if (xchk_should_terminate(sc, &error))

View File

@ -237,7 +237,8 @@ xchk_setup_fscounters(
return error;
}
return xchk_trans_alloc_empty(sc);
xchk_trans_alloc_empty(sc);
return 0;
}
/*

View File

@ -318,9 +318,7 @@ xchk_metapath(
return 0;
}
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
error = xchk_metapath_ilock_both(mpath);
if (error)

View File

@ -555,9 +555,7 @@ xchk_nlinks_collect(
* do not take sb_internal.
*/
xchk_trans_cancel(sc);
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
while ((error = xchk_iscan_iter(&xnc->collect_iscan, &ip)) == 1) {
if (S_ISDIR(VFS_I(ip)->i_mode))
@ -880,9 +878,7 @@ xchk_nlinks_compare(
* inactivation workqueue.
*/
xchk_trans_cancel(sc);
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
/*
* Use the inobt to walk all allocated inodes to compare the link

View File

@ -340,9 +340,7 @@ xrep_nlinks(
* We can only push the inactivation workqueues with an empty
* transaction.
*/
error = xchk_trans_alloc_empty(sc);
if (error)
break;
xchk_trans_alloc_empty(sc);
}
xchk_iscan_iter_finish(&xnc->compare_iscan);
xchk_iscan_teardown(&xnc->compare_iscan);

View File

@ -569,9 +569,7 @@ xrep_parent_scan_dirtree(
if (sc->ilock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL))
xchk_iunlock(sc, sc->ilock_flags & (XFS_ILOCK_SHARED |
XFS_ILOCK_EXCL));
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
while ((error = xchk_iscan_iter(&rp->pscan.iscan, &ip)) == 1) {
bool flush;
@ -597,9 +595,7 @@ xrep_parent_scan_dirtree(
if (error)
break;
error = xchk_trans_alloc_empty(sc);
if (error)
break;
xchk_trans_alloc_empty(sc);
}
if (xchk_should_terminate(sc, &error))
@ -1099,9 +1095,7 @@ xrep_parent_flush_xattrs(
xrep_tempfile_iounlock(rp->sc);
/* Recreate the empty transaction and relock the inode. */
error = xchk_trans_alloc_empty(rp->sc);
if (error)
return error;
xchk_trans_alloc_empty(rp->sc);
xchk_ilock(rp->sc, XFS_ILOCK_EXCL);
return 0;
}

View File

@ -505,9 +505,7 @@ xqcheck_collect_counts(
* transactions do not take sb_internal.
*/
xchk_trans_cancel(sc);
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
while ((error = xchk_iscan_iter(&xqc->iscan, &ip)) == 1) {
error = xqcheck_collect_inode(xqc, ip);

View File

@ -951,9 +951,7 @@ xrep_rmap_find_rmaps(
sa->agf_bp = NULL;
sa->agi_bp = NULL;
xchk_trans_cancel(sc);
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
/* Iterate all AGs for inodes rmaps. */
while ((error = xchk_iscan_iter(&rr->iscan, &ip)) == 1) {

View File

@ -580,9 +580,7 @@ xrep_rtrmap_find_rmaps(
*/
xchk_trans_cancel(sc);
xchk_rtgroup_unlock(&sc->sr);
error = xchk_trans_alloc_empty(sc);
if (error)
return error;
xchk_trans_alloc_empty(sc);
while ((error = xchk_iscan_iter(&rr->iscan, &ip)) == 1) {
error = xrep_rtrmap_scan_inode(rr, ip);