diff options
Diffstat (limited to 'fs/xfs/xfs_dir2_block.c')
-rw-r--r-- | fs/xfs/xfs_dir2_block.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/xfs/xfs_dir2_block.c b/fs/xfs/xfs_dir2_block.c index 90cdbf4b5f19..4f6a38cb83a4 100644 --- a/fs/xfs/xfs_dir2_block.c +++ b/fs/xfs/xfs_dir2_block.c | |||
@@ -89,13 +89,14 @@ xfs_dir3_block_read_verify( | |||
89 | { | 89 | { |
90 | struct xfs_mount *mp = bp->b_target->bt_mount; | 90 | struct xfs_mount *mp = bp->b_target->bt_mount; |
91 | 91 | ||
92 | if ((xfs_sb_version_hascrc(&mp->m_sb) && | 92 | if (xfs_sb_version_hascrc(&mp->m_sb) && |
93 | !xfs_verify_cksum(bp->b_addr, BBTOB(bp->b_length), | 93 | !xfs_buf_verify_cksum(bp, XFS_DIR3_DATA_CRC_OFF)) |
94 | XFS_DIR3_DATA_CRC_OFF)) || | 94 | xfs_buf_ioerror(bp, EFSBADCRC); |
95 | !xfs_dir3_block_verify(bp)) { | 95 | else if (!xfs_dir3_block_verify(bp)) |
96 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, mp, bp->b_addr); | ||
97 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 96 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
98 | } | 97 | |
98 | if (bp->b_error) | ||
99 | xfs_verifier_error(bp); | ||
99 | } | 100 | } |
100 | 101 | ||
101 | static void | 102 | static void |
@@ -107,8 +108,8 @@ xfs_dir3_block_write_verify( | |||
107 | struct xfs_dir3_blk_hdr *hdr3 = bp->b_addr; | 108 | struct xfs_dir3_blk_hdr *hdr3 = bp->b_addr; |
108 | 109 | ||
109 | if (!xfs_dir3_block_verify(bp)) { | 110 | if (!xfs_dir3_block_verify(bp)) { |
110 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, mp, bp->b_addr); | ||
111 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 111 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
112 | xfs_verifier_error(bp); | ||
112 | return; | 113 | return; |
113 | } | 114 | } |
114 | 115 | ||
@@ -118,7 +119,7 @@ xfs_dir3_block_write_verify( | |||
118 | if (bip) | 119 | if (bip) |
119 | hdr3->lsn = cpu_to_be64(bip->bli_item.li_lsn); | 120 | hdr3->lsn = cpu_to_be64(bip->bli_item.li_lsn); |
120 | 121 | ||
121 | xfs_update_cksum(bp->b_addr, BBTOB(bp->b_length), XFS_DIR3_DATA_CRC_OFF); | 122 | xfs_buf_update_cksum(bp, XFS_DIR3_DATA_CRC_OFF); |
122 | } | 123 | } |
123 | 124 | ||
124 | const struct xfs_buf_ops xfs_dir3_block_buf_ops = { | 125 | const struct xfs_buf_ops xfs_dir3_block_buf_ops = { |