xfs: remove redundant checks from xfs_da_read_buf
All of the verification checks of magic numbers are now done by verifiers, so ther eis no need to check them again once the buffer has been successfully read. If the magic number is bad, it won't even get to that code to verify it so it really serves no purpose at all anymore. Remove it. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
这个提交包含在:
@@ -2625,47 +2625,6 @@ xfs_da_read_buf(
|
||||
xfs_buf_set_ref(bp, XFS_ATTR_BTREE_REF);
|
||||
else
|
||||
xfs_buf_set_ref(bp, XFS_DIR_BTREE_REF);
|
||||
|
||||
/*
|
||||
* This verification code will be moved to a CRC verification callback
|
||||
* function so just leave it here unchanged until then.
|
||||
*/
|
||||
{
|
||||
xfs_dir2_data_hdr_t *hdr = bp->b_addr;
|
||||
xfs_dir2_free_t *free = bp->b_addr;
|
||||
xfs_da_blkinfo_t *info = bp->b_addr;
|
||||
uint magic, magic1;
|
||||
struct xfs_mount *mp = dp->i_mount;
|
||||
|
||||
magic = be16_to_cpu(info->magic);
|
||||
magic1 = be32_to_cpu(hdr->magic);
|
||||
if (unlikely(
|
||||
XFS_TEST_ERROR((magic != XFS_DA_NODE_MAGIC) &&
|
||||
(magic != XFS_DA3_NODE_MAGIC) &&
|
||||
(magic != XFS_ATTR_LEAF_MAGIC) &&
|
||||
(magic != XFS_ATTR3_LEAF_MAGIC) &&
|
||||
(magic != XFS_DIR2_LEAF1_MAGIC) &&
|
||||
(magic != XFS_DIR3_LEAF1_MAGIC) &&
|
||||
(magic != XFS_DIR2_LEAFN_MAGIC) &&
|
||||
(magic != XFS_DIR3_LEAFN_MAGIC) &&
|
||||
(magic1 != XFS_DIR2_BLOCK_MAGIC) &&
|
||||
(magic1 != XFS_DIR3_BLOCK_MAGIC) &&
|
||||
(magic1 != XFS_DIR2_DATA_MAGIC) &&
|
||||
(magic1 != XFS_DIR3_DATA_MAGIC) &&
|
||||
(free->hdr.magic !=
|
||||
cpu_to_be32(XFS_DIR2_FREE_MAGIC)) &&
|
||||
(free->hdr.magic !=
|
||||
cpu_to_be32(XFS_DIR3_FREE_MAGIC)),
|
||||
mp, XFS_ERRTAG_DA_READ_BUF,
|
||||
XFS_RANDOM_DA_READ_BUF))) {
|
||||
trace_xfs_da_btree_corrupt(bp, _RET_IP_);
|
||||
XFS_CORRUPTION_ERROR("xfs_da_do_buf(2)",
|
||||
XFS_ERRLEVEL_LOW, mp, info);
|
||||
error = XFS_ERROR(EFSCORRUPTED);
|
||||
xfs_trans_brelse(trans, bp);
|
||||
goto out_free;
|
||||
}
|
||||
}
|
||||
*bpp = bp;
|
||||
out_free:
|
||||
if (mapp != &map)
|
||||
|
在新工单中引用
屏蔽一个用户