On Tue, Jul 15, 2025 at 02:25:40PM +0200, Christoph Hellwig wrote: > xrep_trans_alloc_hook_dummy can't return errors, so return the allocated > transaction directly instead of an output double pointer argument. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/xfs/scrub/repair.c | 8 +++----- > fs/xfs/scrub/repair.h | 4 ++-- > fs/xfs/scrub/rmap_repair.c | 5 +---- > fs/xfs/scrub/rtrmap_repair.c | 5 +---- > 4 files changed, 7 insertions(+), 15 deletions(-) > > diff --git a/fs/xfs/scrub/repair.c b/fs/xfs/scrub/repair.c > index f7f80ff32afc..79251c595e18 100644 > --- a/fs/xfs/scrub/repair.c > +++ b/fs/xfs/scrub/repair.c > @@ -1273,16 +1273,14 @@ xrep_setup_xfbtree( > * function MUST NOT be called from regular repair code because the current > * process' transaction is saved via the cookie. > */ > -int > +struct xfs_trans * > xrep_trans_alloc_hook_dummy( > struct xfs_mount *mp, > - void **cookiep, > - struct xfs_trans **tpp) > + void **cookiep) > { > *cookiep = current->journal_info; > current->journal_info = NULL; You could get rid of all this journal_info manipulation because xfs no longer uses that to track the current transaction. --D > - *tpp = xfs_trans_alloc_empty(mp); > - return 0; > + return xfs_trans_alloc_empty(mp); > } > > /* Cancel a dummy transaction used by a live update hook function. */ > diff --git a/fs/xfs/scrub/repair.h b/fs/xfs/scrub/repair.h > index af0a3a9e5ed9..0a808e903cf5 100644 > --- a/fs/xfs/scrub/repair.h > +++ b/fs/xfs/scrub/repair.h > @@ -180,8 +180,8 @@ int xrep_quotacheck(struct xfs_scrub *sc); > int xrep_reinit_pagf(struct xfs_scrub *sc); > int xrep_reinit_pagi(struct xfs_scrub *sc); > > -int xrep_trans_alloc_hook_dummy(struct xfs_mount *mp, void **cookiep, > - struct xfs_trans **tpp); > +struct xfs_trans *xrep_trans_alloc_hook_dummy(struct xfs_mount *mp, > + void **cookiep); > void xrep_trans_cancel_hook_dummy(void **cookiep, struct xfs_trans *tp); > > bool xrep_buf_verify_struct(struct xfs_buf *bp, const struct xfs_buf_ops *ops); > diff --git a/fs/xfs/scrub/rmap_repair.c b/fs/xfs/scrub/rmap_repair.c > index bf1e632b449a..6024872a17e5 100644 > --- a/fs/xfs/scrub/rmap_repair.c > +++ b/fs/xfs/scrub/rmap_repair.c > @@ -1621,9 +1621,7 @@ xrep_rmapbt_live_update( > > trace_xrep_rmap_live_update(pag_group(rr->sc->sa.pag), action, p); > > - error = xrep_trans_alloc_hook_dummy(mp, &txcookie, &tp); > - if (error) > - goto out_abort; > + tp = xrep_trans_alloc_hook_dummy(mp, &txcookie); > > mutex_lock(&rr->lock); > mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, tp, &rr->rmap_btree); > @@ -1644,7 +1642,6 @@ xrep_rmapbt_live_update( > out_cancel: > xfbtree_trans_cancel(&rr->rmap_btree, tp); > xrep_trans_cancel_hook_dummy(&txcookie, tp); > -out_abort: > mutex_unlock(&rr->lock); > xchk_iscan_abort(&rr->iscan); > out_unlock: > diff --git a/fs/xfs/scrub/rtrmap_repair.c b/fs/xfs/scrub/rtrmap_repair.c > index 4a56726d9952..5b8155c87873 100644 > --- a/fs/xfs/scrub/rtrmap_repair.c > +++ b/fs/xfs/scrub/rtrmap_repair.c > @@ -855,9 +855,7 @@ xrep_rtrmapbt_live_update( > > trace_xrep_rmap_live_update(rtg_group(rr->sc->sr.rtg), action, p); > > - error = xrep_trans_alloc_hook_dummy(mp, &txcookie, &tp); > - if (error) > - goto out_abort; > + tp = xrep_trans_alloc_hook_dummy(mp, &txcookie); > > mutex_lock(&rr->lock); > mcur = xfs_rtrmapbt_mem_cursor(rr->sc->sr.rtg, tp, &rr->rtrmap_btree); > @@ -878,7 +876,6 @@ xrep_rtrmapbt_live_update( > out_cancel: > xfbtree_trans_cancel(&rr->rtrmap_btree, tp); > xrep_trans_cancel_hook_dummy(&txcookie, tp); > -out_abort: > xchk_iscan_abort(&rr->iscan); > mutex_unlock(&rr->lock); > out_unlock: > -- > 2.47.2 > >