xfs: check _btree_check_block value
authorDarrick J. Wong <darrick.wong@oracle.com>
Sun, 17 Sep 2017 21:06:36 +0000 (14:06 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Sep 2017 06:19:58 +0000 (08:19 +0200)
commit 1e86eabe73b73c82e1110c746ed3ec6d5e1c0a0d upstream.

Check the _btree_check_block return value for the firstrec and lastrec
functions, since we have the ability to signal that the repositioning
did not succeed.

Fixes-coverity-id: 114067
Fixes-coverity-id: 114068
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/libxfs/xfs_btree.c

index 91c68913d49508756be1a64c34fe3eaadce88dbc..e9f26a09a0be1c3c018d969a186463aa36902471 100644 (file)
@@ -714,7 +714,8 @@ xfs_btree_firstrec(
         * Get the block pointer for this level.
         */
        block = xfs_btree_get_block(cur, level, &bp);
-       xfs_btree_check_block(cur, block, level, bp);
+       if (xfs_btree_check_block(cur, block, level, bp))
+               return 0;
        /*
         * It's empty, there is no such record.
         */
@@ -743,7 +744,8 @@ xfs_btree_lastrec(
         * Get the block pointer for this level.
         */
        block = xfs_btree_get_block(cur, level, &bp);
-       xfs_btree_check_block(cur, block, level, bp);
+       if (xfs_btree_check_block(cur, block, level, bp))
+               return 0;
        /*
         * It's empty, there is no such record.
         */