diff options
Diffstat (limited to 'fs/xfs/xfs_dir2_leaf.c')
-rw-r--r-- | fs/xfs/xfs_dir2_leaf.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/xfs/xfs_dir2_leaf.c b/fs/xfs/xfs_dir2_leaf.c index ae47ec6e16c4..d36e97df1187 100644 --- a/fs/xfs/xfs_dir2_leaf.c +++ b/fs/xfs/xfs_dir2_leaf.c | |||
@@ -179,13 +179,14 @@ __read_verify( | |||
179 | { | 179 | { |
180 | struct xfs_mount *mp = bp->b_target->bt_mount; | 180 | struct xfs_mount *mp = bp->b_target->bt_mount; |
181 | 181 | ||
182 | if ((xfs_sb_version_hascrc(&mp->m_sb) && | 182 | if (xfs_sb_version_hascrc(&mp->m_sb) && |
183 | !xfs_verify_cksum(bp->b_addr, BBTOB(bp->b_length), | 183 | !xfs_buf_verify_cksum(bp, XFS_DIR3_LEAF_CRC_OFF)) |
184 | XFS_DIR3_LEAF_CRC_OFF)) || | 184 | xfs_buf_ioerror(bp, EFSBADCRC); |
185 | !xfs_dir3_leaf_verify(bp, magic)) { | 185 | else if (!xfs_dir3_leaf_verify(bp, magic)) |
186 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, mp, bp->b_addr); | ||
187 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 186 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
188 | } | 187 | |
188 | if (bp->b_error) | ||
189 | xfs_verifier_error(bp); | ||
189 | } | 190 | } |
190 | 191 | ||
191 | static void | 192 | static void |
@@ -198,8 +199,8 @@ __write_verify( | |||
198 | struct xfs_dir3_leaf_hdr *hdr3 = bp->b_addr; | 199 | struct xfs_dir3_leaf_hdr *hdr3 = bp->b_addr; |
199 | 200 | ||
200 | if (!xfs_dir3_leaf_verify(bp, magic)) { | 201 | if (!xfs_dir3_leaf_verify(bp, magic)) { |
201 | XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, mp, bp->b_addr); | ||
202 | xfs_buf_ioerror(bp, EFSCORRUPTED); | 202 | xfs_buf_ioerror(bp, EFSCORRUPTED); |
203 | xfs_verifier_error(bp); | ||
203 | return; | 204 | return; |
204 | } | 205 | } |
205 | 206 | ||
@@ -209,7 +210,7 @@ __write_verify( | |||
209 | if (bip) | 210 | if (bip) |
210 | hdr3->info.lsn = cpu_to_be64(bip->bli_item.li_lsn); | 211 | hdr3->info.lsn = cpu_to_be64(bip->bli_item.li_lsn); |
211 | 212 | ||
212 | xfs_update_cksum(bp->b_addr, BBTOB(bp->b_length), XFS_DIR3_LEAF_CRC_OFF); | 213 | xfs_buf_update_cksum(bp, XFS_DIR3_LEAF_CRC_OFF); |
213 | } | 214 | } |
214 | 215 | ||
215 | static void | 216 | static void |