diff options
Diffstat (limited to 'fs/xfs/xfs_alloc_btree.c')
| -rw-r--r-- | fs/xfs/xfs_alloc_btree.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c index 13085429e523..cc1eadcbb049 100644 --- a/fs/xfs/xfs_alloc_btree.c +++ b/fs/xfs/xfs_alloc_btree.c | |||
| @@ -355,12 +355,14 @@ static void | |||
| 355 | xfs_allocbt_read_verify( | 355 | xfs_allocbt_read_verify( |
| 356 | struct xfs_buf *bp) | 356 | struct xfs_buf *bp) |
| 357 | { | 357 | { |
| 358 | if (!(xfs_btree_sblock_verify_crc(bp) && | 358 | if (!xfs_btree_sblock_verify_crc(bp)) |
| 359 | xfs_allocbt_verify(bp))) { | 359 | xfs_buf_ioerror(bp, EFSBADCRC); |
| 360 | trace_xfs_btree_corrupt(bp, _RET_IP_); | 360 | else if (!xfs_allocbt_verify(bp)) |
| 361 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, | ||
| 362 | bp->b_target->bt_mount, bp->b_addr); | ||
| 363 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 361 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
| 362 | |||
| 363 | if (bp->b_error) { | ||
| 364 | trace_xfs_btree_corrupt(bp, _RET_IP_); | ||
| 365 | xfs_verifier_error(bp); | ||
| 364 | } | 366 | } |
| 365 | } | 367 | } |
| 366 | 368 | ||
| @@ -370,9 +372,9 @@ xfs_allocbt_write_verify( | |||
| 370 | { | 372 | { |
| 371 | if (!xfs_allocbt_verify(bp)) { | 373 | if (!xfs_allocbt_verify(bp)) { |
| 372 | trace_xfs_btree_corrupt(bp, _RET_IP_); | 374 | trace_xfs_btree_corrupt(bp, _RET_IP_); |
| 373 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, | ||
| 374 | bp->b_target->bt_mount, bp->b_addr); | ||
| 375 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 375 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
| 376 | xfs_verifier_error(bp); | ||
| 377 | return; | ||
| 376 | } | 378 | } |
| 377 | xfs_btree_sblock_calc_crc(bp); | 379 | xfs_btree_sblock_calc_crc(bp); |
| 378 | 380 | ||
