On Wed, Jul 16, 2025 at 02:43:17PM +0200, Christoph Hellwig wrote: > XFS stopped using current->journal_info in commit f2e812c1522d ("xfs: > don't use current->journal_info"), so there is no point in saving and > restoring it. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Excellent <tents fingers> Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > --- > fs/xfs/scrub/repair.c | 28 ---------------------------- > fs/xfs/scrub/repair.h | 4 ---- > fs/xfs/scrub/rmap_repair.c | 10 +++------- > fs/xfs/scrub/rtrmap_repair.c | 10 +++------- > 4 files changed, 6 insertions(+), 46 deletions(-) > > diff --git a/fs/xfs/scrub/repair.c b/fs/xfs/scrub/repair.c > index f7f80ff32afc..d00c18954a26 100644 > --- a/fs/xfs/scrub/repair.c > +++ b/fs/xfs/scrub/repair.c > @@ -1268,34 +1268,6 @@ xrep_setup_xfbtree( > return xmbuf_alloc(sc->mp, descr, &sc->xmbtp); > } > > -/* > - * Create a dummy transaction for use in a live update hook function. This > - * function MUST NOT be called from regular repair code because the current > - * process' transaction is saved via the cookie. > - */ > -int > -xrep_trans_alloc_hook_dummy( > - struct xfs_mount *mp, > - void **cookiep, > - struct xfs_trans **tpp) > -{ > - *cookiep = current->journal_info; > - current->journal_info = NULL; > - *tpp = xfs_trans_alloc_empty(mp); > - return 0; > -} > - > -/* Cancel a dummy transaction used by a live update hook function. */ > -void > -xrep_trans_cancel_hook_dummy( > - void **cookiep, > - struct xfs_trans *tp) > -{ > - xfs_trans_cancel(tp); > - current->journal_info = *cookiep; > - *cookiep = NULL; > -} > - > /* > * See if this buffer can pass the given ->verify_struct() function. > * > diff --git a/fs/xfs/scrub/repair.h b/fs/xfs/scrub/repair.h > index af0a3a9e5ed9..9c04295742c8 100644 > --- a/fs/xfs/scrub/repair.h > +++ b/fs/xfs/scrub/repair.h > @@ -180,10 +180,6 @@ 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); > -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); > void xrep_inode_set_nblocks(struct xfs_scrub *sc, int64_t new_blocks); > int xrep_reset_metafile_resv(struct xfs_scrub *sc); > diff --git a/fs/xfs/scrub/rmap_repair.c b/fs/xfs/scrub/rmap_repair.c > index bf1e632b449a..17d4a38d735c 100644 > --- a/fs/xfs/scrub/rmap_repair.c > +++ b/fs/xfs/scrub/rmap_repair.c > @@ -1610,7 +1610,6 @@ xrep_rmapbt_live_update( > struct xfs_mount *mp; > struct xfs_btree_cur *mcur; > struct xfs_trans *tp; > - void *txcookie; > int error; > > rr = container_of(nb, struct xrep_rmap, rhook.rmap_hook.nb); > @@ -1621,9 +1620,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 = xfs_trans_alloc_empty(mp); > > mutex_lock(&rr->lock); > mcur = xfs_rmapbt_mem_cursor(rr->sc->sa.pag, tp, &rr->rmap_btree); > @@ -1637,14 +1634,13 @@ xrep_rmapbt_live_update( > if (error) > goto out_cancel; > > - xrep_trans_cancel_hook_dummy(&txcookie, tp); > + xfs_trans_cancel(tp); > mutex_unlock(&rr->lock); > return NOTIFY_DONE; > > out_cancel: > xfbtree_trans_cancel(&rr->rmap_btree, tp); > - xrep_trans_cancel_hook_dummy(&txcookie, tp); > -out_abort: > + xfs_trans_cancel(tp); > 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..7561941a337a 100644 > --- a/fs/xfs/scrub/rtrmap_repair.c > +++ b/fs/xfs/scrub/rtrmap_repair.c > @@ -844,7 +844,6 @@ xrep_rtrmapbt_live_update( > struct xfs_mount *mp; > struct xfs_btree_cur *mcur; > struct xfs_trans *tp; > - void *txcookie; > int error; > > rr = container_of(nb, struct xrep_rtrmap, rhook.rmap_hook.nb); > @@ -855,9 +854,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 = xfs_trans_alloc_empty(mp); > > mutex_lock(&rr->lock); > mcur = xfs_rtrmapbt_mem_cursor(rr->sc->sr.rtg, tp, &rr->rtrmap_btree); > @@ -871,14 +868,13 @@ xrep_rtrmapbt_live_update( > if (error) > goto out_cancel; > > - xrep_trans_cancel_hook_dummy(&txcookie, tp); > + xfs_trans_cancel(tp); > mutex_unlock(&rr->lock); > return NOTIFY_DONE; > > out_cancel: > xfbtree_trans_cancel(&rr->rtrmap_btree, tp); > - xrep_trans_cancel_hook_dummy(&txcookie, tp); > -out_abort: > + xfs_trans_cancel(tp); > xchk_iscan_abort(&rr->iscan); > mutex_unlock(&rr->lock); > out_unlock: > -- > 2.47.2 > >