]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs: convert open coded corruption check to use XFS_IS_CORRUPT
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 22 Jan 2020 16:29:44 +0000 (11:29 -0500)
committerEric Sandeen <sandeen@redhat.com>
Wed, 22 Jan 2020 16:29:44 +0000 (11:29 -0500)
Source kernel commit: a71895c5dad1ab8cf30622e208d148298ab602e5

Convert the last of the open coded corruption check and report idioms to
use the XFS_IS_CORRUPT macro.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_alloc.c
libxfs/xfs_bmap.c
libxfs/xfs_btree.c
libxfs/xfs_da_btree.c
libxfs/xfs_dir2.c
libxfs/xfs_dir2_node.c
libxfs/xfs_refcount.c
libxfs/xfs_rmap.c
libxfs/xfs_rtbitmap.c

index 28b30d4e17612daa5d2e99b49bb60c9e9e6d2b5e..b7741fe917a40396fe26b2a0316c6de647f9ece2 100644 (file)
@@ -1066,8 +1066,7 @@ xfs_alloc_ag_vextent_small(
                struct xfs_buf  *bp;
 
                bp = xfs_btree_get_bufs(args->mp, args->tp, args->agno, fbno);
-               if (!bp) {
-                       XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, args->mp);
+               if (XFS_IS_CORRUPT(args->mp, !bp)) {
                        error = -EFSCORRUPTED;
                        goto error;
                }
@@ -2336,10 +2335,8 @@ xfs_free_agfl_block(
                return error;
 
        bp = xfs_btree_get_bufs(tp->t_mountp, tp, agno, agbno);
-       if (!bp) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, tp->t_mountp);
+       if (XFS_IS_CORRUPT(tp->t_mountp, !bp))
                return -EFSCORRUPTED;
-       }
        xfs_trans_binval(tp, bp);
 
        return 0;
index 40b73b0e7694cc5b578acbf39575362845801664..4e70561d91b8e3f451108df548e2173ed62fcc9b 100644 (file)
@@ -723,8 +723,7 @@ xfs_bmap_extents_to_btree(
        ip->i_d.di_nblocks++;
        xfs_trans_mod_dquot_byino(tp, ip, XFS_TRANS_DQ_BCOUNT, 1L);
        abp = xfs_btree_get_bufl(mp, tp, args.fsbno);
-       if (!abp) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !abp)) {
                error = -EFSCORRUPTED;
                goto out_unreserve_dquot;
        }
@@ -1082,8 +1081,7 @@ xfs_bmap_add_attrfork(
                goto trans_cancel;
        if (XFS_IFORK_Q(ip))
                goto trans_cancel;
-       if (ip->i_d.di_anextents != 0) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, ip->i_d.di_anextents != 0)) {
                error = -EFSCORRUPTED;
                goto trans_cancel;
        }
@@ -1230,8 +1228,9 @@ xfs_iread_extents(
 
        ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
 
-       if (unlikely(XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE)) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp,
+                          XFS_IFORK_FORMAT(ip, whichfork) !=
+                          XFS_DINODE_FMT_BTREE)) {
                error = -EFSCORRUPTED;
                goto out;
        }
@@ -1245,8 +1244,8 @@ xfs_iread_extents(
        if (error)
                goto out;
 
-       if (ir.loaded != XFS_IFORK_NEXTENTS(ip, whichfork)) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp,
+                          ir.loaded != XFS_IFORK_NEXTENTS(ip, whichfork))) {
                error = -EFSCORRUPTED;
                goto out;
        }
@@ -1436,10 +1435,8 @@ xfs_bmap_last_offset(
        if (XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_LOCAL)
                return 0;
 
-       if (!xfs_ifork_has_extents(ip, whichfork)) {
-               ASSERT(0);
+       if (XFS_IS_CORRUPT(ip->i_mount, !xfs_ifork_has_extents(ip, whichfork)))
                return -EFSCORRUPTED;
-       }
 
        error = xfs_bmap_last_extent(NULL, ip, whichfork, &rec, &is_empty);
        if (error || is_empty)
@@ -3898,10 +3895,8 @@ xfs_bmapi_read(
                           XFS_BMAPI_COWFORK)));
        ASSERT(xfs_isilocked(ip, XFS_ILOCK_SHARED|XFS_ILOCK_EXCL));
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT("xfs_bmapi_read", XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
@@ -4409,10 +4404,8 @@ xfs_bmapi_write(
        ASSERT((flags & (XFS_BMAPI_PREALLOC | XFS_BMAPI_ZERO)) !=
                        (XFS_BMAPI_PREALLOC | XFS_BMAPI_ZERO));
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT("xfs_bmapi_write", XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
@@ -4678,10 +4671,8 @@ xfs_bmapi_remap(
        ASSERT((flags & (XFS_BMAPI_ATTRFORK | XFS_BMAPI_PREALLOC)) !=
                        (XFS_BMAPI_ATTRFORK | XFS_BMAPI_PREALLOC));
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT("xfs_bmapi_remap", XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
@@ -5303,7 +5294,7 @@ __xfs_bunmapi(
        int                     isrt;           /* freeing in rt area */
        int                     logflags;       /* transaction logging flags */
        xfs_extlen_t            mod;            /* rt extent offset */
-       struct xfs_mount        *mp;            /* mount structure */
+       struct xfs_mount        *mp = ip->i_mount;
        int                     tmp_logflags;   /* partial logging flags */
        int                     wasdel;         /* was a delayed alloc extent */
        int                     whichfork;      /* data or attribute fork */
@@ -5320,12 +5311,8 @@ __xfs_bunmapi(
        whichfork = xfs_bmapi_whichfork(flags);
        ASSERT(whichfork != XFS_COW_FORK);
        ifp = XFS_IFORK_PTR(ip, whichfork);
-       if (unlikely(!xfs_ifork_has_extents(ip, whichfork))) {
-               XFS_ERROR_REPORT("xfs_bunmapi", XFS_ERRLEVEL_LOW,
-                                ip->i_mount);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)))
                return -EFSCORRUPTED;
-       }
-       mp = ip->i_mount;
        if (XFS_FORCED_SHUTDOWN(mp))
                return -EIO;
 
@@ -5818,10 +5805,8 @@ xfs_bmap_collapse_extents(
        int                     error = 0;
        int                     logflags = 0;
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
@@ -5937,10 +5922,8 @@ xfs_bmap_insert_extents(
        int                     error = 0;
        int                     logflags = 0;
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
@@ -5978,8 +5961,8 @@ xfs_bmap_insert_extents(
                goto del_cursor;
        }
 
-       if (stop_fsb >= got.br_startoff + got.br_blockcount) {
-               ASSERT(0);
+       if (XFS_IS_CORRUPT(mp,
+                          stop_fsb >= got.br_startoff + got.br_blockcount)) {
                error = -EFSCORRUPTED;
                goto del_cursor;
        }
@@ -6045,11 +6028,8 @@ xfs_bmap_split_extent_at(
        int                             logflags = 0;
        int                             i = 0;
 
-       if (unlikely(XFS_TEST_ERROR(
-           !xfs_ifork_has_extents(ip, whichfork),
-            mp, XFS_ERRTAG_BMAPIFORMAT))) {
-               XFS_ERROR_REPORT("xfs_bmap_split_extent_at",
-                                XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ip, whichfork)) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
                return -EFSCORRUPTED;
        }
 
index 03ac240e059dd4941b523b0402b1f664b3a0cc37..9ebf1fb37ac624c56fa02c2516ba3b9717b5df70 100644 (file)
@@ -100,11 +100,10 @@ xfs_btree_check_lblock(
        xfs_failaddr_t          fa;
 
        fa = __xfs_btree_check_lblock(cur, block, level, bp);
-       if (unlikely(XFS_TEST_ERROR(fa != NULL, mp,
-                       XFS_ERRTAG_BTREE_CHECK_LBLOCK))) {
+       if (XFS_IS_CORRUPT(mp, fa != NULL) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BTREE_CHECK_LBLOCK)) {
                if (bp)
                        trace_xfs_btree_corrupt(bp, _RET_IP_);
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
                return -EFSCORRUPTED;
        }
        return 0;
@@ -164,11 +163,10 @@ xfs_btree_check_sblock(
        xfs_failaddr_t          fa;
 
        fa = __xfs_btree_check_sblock(cur, block, level, bp);
-       if (unlikely(XFS_TEST_ERROR(fa != NULL, mp,
-                       XFS_ERRTAG_BTREE_CHECK_SBLOCK))) {
+       if (XFS_IS_CORRUPT(mp, fa != NULL) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BTREE_CHECK_SBLOCK)) {
                if (bp)
                        trace_xfs_btree_corrupt(bp, _RET_IP_);
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
                return -EFSCORRUPTED;
        }
        return 0;
@@ -1844,10 +1842,8 @@ xfs_btree_lookup(
        XFS_BTREE_STATS_INC(cur, lookup);
 
        /* No such thing as a zero-level tree. */
-       if (cur->bc_nlevels == 0) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, cur->bc_mp);
+       if (XFS_IS_CORRUPT(cur->bc_mp, cur->bc_nlevels == 0))
                return -EFSCORRUPTED;
-       }
 
        block = NULL;
        keyno = 0;
index c33114d606f133c7d1c9fec909e227d061cae8ad..76b537656394fcf69b972d5b4dcf8e0a9e58630a 100644 (file)
@@ -1660,17 +1660,12 @@ xfs_da3_node_lookup_int(
                }
 
                /* We can't point back to the root. */
-               if (blkno == args->geo->leafblk) {
-                       XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW,
-                                       dp->i_mount);
+               if (XFS_IS_CORRUPT(dp->i_mount, blkno == args->geo->leafblk))
                        return -EFSCORRUPTED;
-               }
        }
 
-       if (expected_level != 0) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, dp->i_mount);
+       if (XFS_IS_CORRUPT(dp->i_mount, expected_level != 0))
                return -EFSCORRUPTED;
-       }
 
        /*
         * A leaf block that ends in the hashval that we are interested in
@@ -2264,11 +2259,8 @@ xfs_da3_swap_lastblock(
        error = xfs_bmap_last_before(tp, dp, &lastoff, w);
        if (error)
                return error;
-       if (unlikely(lastoff == 0)) {
-               XFS_ERROR_REPORT("xfs_da_swap_lastblock(1)", XFS_ERRLEVEL_LOW,
-                                mp);
+       if (XFS_IS_CORRUPT(mp, lastoff == 0))
                return -EFSCORRUPTED;
-       }
        /*
         * Read the last block in the btree space.
         */
@@ -2314,11 +2306,9 @@ xfs_da3_swap_lastblock(
                if (error)
                        goto done;
                sib_info = sib_buf->b_addr;
-               if (unlikely(
-                   be32_to_cpu(sib_info->forw) != last_blkno ||
-                   sib_info->magic != dead_info->magic)) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(2)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp,
+                                  be32_to_cpu(sib_info->forw) != last_blkno ||
+                                  sib_info->magic != dead_info->magic)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2336,11 +2326,9 @@ xfs_da3_swap_lastblock(
                if (error)
                        goto done;
                sib_info = sib_buf->b_addr;
-               if (unlikely(
-                      be32_to_cpu(sib_info->back) != last_blkno ||
-                      sib_info->magic != dead_info->magic)) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(3)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp,
+                                  be32_to_cpu(sib_info->back) != last_blkno ||
+                                  sib_info->magic != dead_info->magic)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2361,9 +2349,8 @@ xfs_da3_swap_lastblock(
                        goto done;
                par_node = par_buf->b_addr;
                xfs_da3_node_hdr_from_disk(dp->i_mount, &par_hdr, par_node);
-               if (level >= 0 && level != par_hdr.level + 1) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(4)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp,
+                                  level >= 0 && level != par_hdr.level + 1)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2374,9 +2361,7 @@ xfs_da3_swap_lastblock(
                     be32_to_cpu(btree[entno].hashval) < dead_hash;
                     entno++)
                        continue;
-               if (entno == par_hdr.count) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(5)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp, entno == par_hdr.count)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2401,9 +2386,7 @@ xfs_da3_swap_lastblock(
                par_blkno = par_hdr.forw;
                xfs_trans_brelse(tp, par_buf);
                par_buf = NULL;
-               if (unlikely(par_blkno == 0)) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(6)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp, par_blkno == 0)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2412,9 +2395,7 @@ xfs_da3_swap_lastblock(
                        goto done;
                par_node = par_buf->b_addr;
                xfs_da3_node_hdr_from_disk(dp->i_mount, &par_hdr, par_node);
-               if (par_hdr.level != level) {
-                       XFS_ERROR_REPORT("xfs_da_swap_lastblock(7)",
-                                        XFS_ERRLEVEL_LOW, mp);
+               if (XFS_IS_CORRUPT(mp, par_hdr.level != level)) {
                        error = -EFSCORRUPTED;
                        goto done;
                }
@@ -2608,7 +2589,7 @@ xfs_dabuf_map(
 
        if (!xfs_da_map_covers_blocks(nirecs, irecs, bno, nfsb)) {
                /* Caller ok with no mapping. */
-               if (mappedbno == -2) {
+               if (!XFS_IS_CORRUPT(mp, mappedbno != -2)) {
                        error = -1;
                        goto out;
                }
@@ -2629,7 +2610,6 @@ xfs_dabuf_map(
                                        irecs[i].br_state);
                        }
                }
-               XFS_ERROR_REPORT("xfs_da_do_buf(1)", XFS_ERRLEVEL_LOW, mp);
                error = -EFSCORRUPTED;
                goto out;
        }
index f340eecbfe7ccfc97d4faa78e4ebe3db49d62159..df40776005d7322db44551e45ee18963fe5987d7 100644 (file)
@@ -206,10 +206,10 @@ xfs_dir_ino_validate(
 {
        bool            ino_ok = xfs_verify_dir_ino(mp, ino);
 
-       if (unlikely(XFS_TEST_ERROR(!ino_ok, mp, XFS_ERRTAG_DIR_INO_VALIDATE))) {
+       if (XFS_IS_CORRUPT(mp, !ino_ok) ||
+           XFS_TEST_ERROR(false, mp, XFS_ERRTAG_DIR_INO_VALIDATE)) {
                xfs_warn(mp, "Invalid inode number 0x%Lx",
                                (unsigned long long) ino);
-               XFS_ERROR_REPORT("xfs_dir_ino_validate", XFS_ERRLEVEL_LOW, mp);
                return -EFSCORRUPTED;
        }
        return 0;
@@ -615,10 +615,10 @@ xfs_dir2_isblock(
        if ((rval = xfs_bmap_last_offset(args->dp, &last, XFS_DATA_FORK)))
                return rval;
        rval = XFS_FSB_TO_B(args->dp->i_mount, last) == args->geo->blksize;
-       if (rval != 0 && args->dp->i_d.di_size != args->geo->blksize) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, args->dp->i_mount);
+       if (XFS_IS_CORRUPT(args->dp->i_mount,
+                          rval != 0 &&
+                          args->dp->i_d.di_size != args->geo->blksize))
                return -EFSCORRUPTED;
-       }
        *vp = rval;
        return 0;
 }
index 76f9b590b05b28d87107eb45c5aeac06a0b7296d..a0c803169898885bbeb9271e337c930f2dfc24b3 100644 (file)
@@ -725,10 +725,9 @@ xfs_dir2_leafn_lookup_for_addname(
                         * If it has room, return it.
                         */
                        xfs_dir2_free_hdr_from_disk(mp, &freehdr, free);
-                       if (unlikely(
-                           freehdr.bests[fi] == cpu_to_be16(NULLDATAOFF))) {
-                               XFS_ERROR_REPORT("xfs_dir2_leafn_lookup_int",
-                                                       XFS_ERRLEVEL_LOW, mp);
+                       if (XFS_IS_CORRUPT(mp,
+                                          freehdr.bests[fi] ==
+                                          cpu_to_be16(NULLDATAOFF))) {
                                if (curfdb != newfdb)
                                        xfs_trans_brelse(tp, curbp);
                                return -EFSCORRUPTED;
@@ -1719,7 +1718,9 @@ xfs_dir2_node_add_datablk(
                if (error)
                        return error;
 
-               if (xfs_dir2_db_to_fdb(args->geo, *dbno) != fbno) {
+               if (XFS_IS_CORRUPT(mp,
+                                  xfs_dir2_db_to_fdb(args->geo, *dbno) !=
+                                  fbno)) {
                        xfs_alert(mp,
 "%s: dir ino %llu needed freesp block %lld for data block %lld, got %lld",
                                __func__, (unsigned long long)dp->i_ino,
@@ -1733,7 +1734,6 @@ xfs_dir2_node_add_datablk(
                        } else {
                                xfs_alert(mp, " ... fblk is NULL");
                        }
-                       XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
                        return -EFSCORRUPTED;
                }
 
index b592d7f4a421cc10749216bd14efe1a82bc9cf0d..5149b0f7880c439411d5753a366908a8ce578ea6 100644 (file)
@@ -1175,7 +1175,7 @@ xfs_refcount_finish_one(
                                XFS_ALLOC_FLAG_FREEING, &agbp);
                if (error)
                        return error;
-               if (!agbp)
+               if (XFS_IS_CORRUPT(tp->t_mountp, !agbp))
                        return -EFSCORRUPTED;
 
                rcur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno);
@@ -1659,17 +1659,16 @@ struct xfs_refcount_recovery {
 /* Stuff an extent on the recovery list. */
 STATIC int
 xfs_refcount_recover_extent(
-       struct xfs_btree_cur            *cur,
+       struct xfs_btree_cur            *cur,
        union xfs_btree_rec             *rec,
        void                            *priv)
 {
        struct list_head                *debris = priv;
        struct xfs_refcount_recovery    *rr;
 
-       if (be32_to_cpu(rec->refc.rc_refcount) != 1) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, cur->bc_mp);
+       if (XFS_IS_CORRUPT(cur->bc_mp,
+                          be32_to_cpu(rec->refc.rc_refcount) != 1))
                return -EFSCORRUPTED;
-       }
 
        rr = kmem_alloc(sizeof(struct xfs_refcount_recovery), 0);
        xfs_refcount_btrec_to_irec(rec, &rr->rr_rrec);
index ce23a4ad801e033969bd3ca7ee521419c808b373..69a14d66039d00b43252ba09eb1696929b3ceef0 100644 (file)
@@ -2398,7 +2398,7 @@ xfs_rmap_finish_one(
                error = xfs_free_extent_fix_freelist(tp, agno, &agbp);
                if (error)
                        return error;
-               if (!agbp)
+               if (XFS_IS_CORRUPT(tp->t_mountp, !agbp))
                        return -EFSCORRUPTED;
 
                rcur = xfs_rmapbt_init_cursor(mp, tp, agbp, agno);
index 84879c5ce6a5d1d3e2ab3e24737088c576c523d4..44ad96fc1936c479fbd76879b49bb5539c735255 100644 (file)
@@ -68,10 +68,8 @@ xfs_rtbuf_get(
        if (error)
                return error;
 
-       if (nmap == 0 || !xfs_bmap_is_real_extent(&map)) {
-               XFS_ERROR_REPORT(__func__, XFS_ERRLEVEL_LOW, mp);
+       if (XFS_IS_CORRUPT(mp, nmap == 0 || !xfs_bmap_is_real_extent(&map)))
                return -EFSCORRUPTED;
-       }
 
        ASSERT(map.br_startblock != NULLFSBLOCK);
        error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp,