Hi Darrick, How about this version? Thanks, Joseph On 12/4/20 10:48 AM, Joseph Qi wrote: > Since *init_cursor() can always return a valid cursor, the NULL check > in caller is unneeded. So clean them up. > This also keeps the behavior consistent with other callers. > > Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_bmap_btree.c | 2 -- > fs/xfs/libxfs/xfs_ialloc_btree.c | 5 ----- > fs/xfs/libxfs/xfs_refcount.c | 9 --------- > fs/xfs/libxfs/xfs_rmap.c | 9 --------- > fs/xfs/scrub/agheader_repair.c | 2 -- > fs/xfs/scrub/bmap.c | 5 ----- > fs/xfs/scrub/common.c | 14 -------------- > 7 files changed, 46 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c > index ecec604..9766591 100644 > --- a/fs/xfs/libxfs/xfs_bmap_btree.c > +++ b/fs/xfs/libxfs/xfs_bmap_btree.c > @@ -639,8 +639,6 @@ struct xfs_btree_cur * /* new bmap btree cursor */ > ASSERT(XFS_IFORK_PTR(ip, whichfork)->if_format == XFS_DINODE_FMT_BTREE); > > cur = xfs_bmbt_init_cursor(ip->i_mount, tp, ip, whichfork); > - if (!cur) > - return -ENOMEM; > cur->bc_ino.flags |= XFS_BTCUR_BMBT_INVALID_OWNER; > > error = xfs_btree_change_owner(cur, new_owner, buffer_list); > diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c > index cc919a2..4c58316 100644 > --- a/fs/xfs/libxfs/xfs_ialloc_btree.c > +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c > @@ -672,11 +672,6 @@ struct xfs_btree_cur * > return error; > > cur = xfs_inobt_init_cursor(mp, tp, *agi_bpp, agno, which); > - if (!cur) { > - xfs_trans_brelse(tp, *agi_bpp); > - *agi_bpp = NULL; > - return -ENOMEM; > - } > *curpp = cur; > return 0; > } > diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c > index 2076627..2037b9f 100644 > --- a/fs/xfs/libxfs/xfs_refcount.c > +++ b/fs/xfs/libxfs/xfs_refcount.c > @@ -1179,10 +1179,6 @@ STATIC int __xfs_refcount_cow_free(struct xfs_btree_cur *rcur, > return error; > > rcur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno); > - if (!rcur) { > - error = -ENOMEM; > - goto out_cur; > - } > rcur->bc_ag.refc.nr_ops = nr_ops; > rcur->bc_ag.refc.shape_changes = shape_changes; > } > @@ -1217,11 +1213,6 @@ STATIC int __xfs_refcount_cow_free(struct xfs_btree_cur *rcur, > trace_xfs_refcount_finish_one_leftover(mp, agno, type, > bno, blockcount, new_agbno, *new_len); > return error; > - > -out_cur: > - xfs_trans_brelse(tp, agbp); > - > - return error; > } > > /* > diff --git a/fs/xfs/libxfs/xfs_rmap.c b/fs/xfs/libxfs/xfs_rmap.c > index 2668ebe..10e0cf99 100644 > --- a/fs/xfs/libxfs/xfs_rmap.c > +++ b/fs/xfs/libxfs/xfs_rmap.c > @@ -2404,10 +2404,6 @@ struct xfs_rmap_query_range_info { > return -EFSCORRUPTED; > > rcur = xfs_rmapbt_init_cursor(mp, tp, agbp, agno); > - if (!rcur) { > - error = -ENOMEM; > - goto out_cur; > - } > } > *pcur = rcur; > > @@ -2446,11 +2442,6 @@ struct xfs_rmap_query_range_info { > error = -EFSCORRUPTED; > } > return error; > - > -out_cur: > - xfs_trans_brelse(tp, agbp); > - > - return error; > } > > /* > diff --git a/fs/xfs/scrub/agheader_repair.c b/fs/xfs/scrub/agheader_repair.c > index 401f715..23690f8 100644 > --- a/fs/xfs/scrub/agheader_repair.c > +++ b/fs/xfs/scrub/agheader_repair.c > @@ -829,8 +829,6 @@ enum { > > cur = xfs_inobt_init_cursor(mp, sc->tp, agi_bp, sc->sa.agno, > XFS_BTNUM_FINO); > - if (error) > - goto err; > error = xfs_btree_count_blocks(cur, &blocks); > if (error) > goto err; > diff --git a/fs/xfs/scrub/bmap.c b/fs/xfs/scrub/bmap.c > index fed56d2..dd165c0 100644 > --- a/fs/xfs/scrub/bmap.c > +++ b/fs/xfs/scrub/bmap.c > @@ -563,10 +563,6 @@ struct xchk_bmap_check_rmap_info { > return error; > > cur = xfs_rmapbt_init_cursor(sc->mp, sc->tp, agf, agno); > - if (!cur) { > - error = -ENOMEM; > - goto out_agf; > - } > > sbcri.sc = sc; > sbcri.whichfork = whichfork; > @@ -575,7 +571,6 @@ struct xchk_bmap_check_rmap_info { > error = 0; > > xfs_btree_del_cursor(cur, error); > -out_agf: > xfs_trans_brelse(sc->tp, agf); > return error; > } > diff --git a/fs/xfs/scrub/common.c b/fs/xfs/scrub/common.c > index 1887605..8ea6d4a 100644 > --- a/fs/xfs/scrub/common.c > +++ b/fs/xfs/scrub/common.c > @@ -466,8 +466,6 @@ struct xchk_rmap_ownedby_info { > /* Set up a bnobt cursor for cross-referencing. */ > sa->bno_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp, > agno, XFS_BTNUM_BNO); > - if (!sa->bno_cur) > - goto err; > } > > if (sa->agf_bp && > @@ -475,8 +473,6 @@ struct xchk_rmap_ownedby_info { > /* Set up a cntbt cursor for cross-referencing. */ > sa->cnt_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp, > agno, XFS_BTNUM_CNT); > - if (!sa->cnt_cur) > - goto err; > } > > /* Set up a inobt cursor for cross-referencing. */ > @@ -484,8 +480,6 @@ struct xchk_rmap_ownedby_info { > xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_INO)) { > sa->ino_cur = xfs_inobt_init_cursor(mp, sc->tp, sa->agi_bp, > agno, XFS_BTNUM_INO); > - if (!sa->ino_cur) > - goto err; > } > > /* Set up a finobt cursor for cross-referencing. */ > @@ -493,8 +487,6 @@ struct xchk_rmap_ownedby_info { > xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_FINO)) { > sa->fino_cur = xfs_inobt_init_cursor(mp, sc->tp, sa->agi_bp, > agno, XFS_BTNUM_FINO); > - if (!sa->fino_cur) > - goto err; > } > > /* Set up a rmapbt cursor for cross-referencing. */ > @@ -502,8 +494,6 @@ struct xchk_rmap_ownedby_info { > xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_RMAP)) { > sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, sa->agf_bp, > agno); > - if (!sa->rmap_cur) > - goto err; > } > > /* Set up a refcountbt cursor for cross-referencing. */ > @@ -511,13 +501,9 @@ struct xchk_rmap_ownedby_info { > xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_REFC)) { > sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp, > sa->agf_bp, agno); > - if (!sa->refc_cur) > - goto err; > } > > return 0; > -err: > - return -ENOMEM; > } > > /* Release the AG header context and btree cursors. */ >