xfs: add inode magic to inode verifier
Use xfs_verify_magic to check the magic numbers of inodes. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Brian Foster <bfoster@redhat.com>
This commit is contained in:
Родитель
8764f98351
Коммит
2bfe7069f7
|
@ -97,7 +97,7 @@ xfs_inode_buf_verify(
|
|||
|
||||
dip = xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog));
|
||||
unlinked_ino = be32_to_cpu(dip->di_next_unlinked);
|
||||
di_ok = dip->di_magic == cpu_to_be16(XFS_DINODE_MAGIC) &&
|
||||
di_ok = xfs_verify_magic(bp, dip->di_magic) &&
|
||||
xfs_dinode_good_version(mp, dip->di_version) &&
|
||||
xfs_verify_agino_or_null(mp, agno, unlinked_ino);
|
||||
if (unlikely(XFS_TEST_ERROR(!di_ok, mp,
|
||||
|
@ -146,12 +146,16 @@ xfs_inode_buf_write_verify(
|
|||
|
||||
const struct xfs_buf_ops xfs_inode_buf_ops = {
|
||||
.name = "xfs_inode",
|
||||
.magic = { cpu_to_be16(XFS_DINODE_MAGIC),
|
||||
cpu_to_be16(XFS_DINODE_MAGIC) },
|
||||
.verify_read = xfs_inode_buf_read_verify,
|
||||
.verify_write = xfs_inode_buf_write_verify,
|
||||
};
|
||||
|
||||
const struct xfs_buf_ops xfs_inode_buf_ra_ops = {
|
||||
.name = "xfs_inode_ra",
|
||||
.magic = { cpu_to_be16(XFS_DINODE_MAGIC),
|
||||
cpu_to_be16(XFS_DINODE_MAGIC) },
|
||||
.verify_read = xfs_inode_buf_readahead_verify,
|
||||
.verify_write = xfs_inode_buf_write_verify,
|
||||
};
|
||||
|
|
|
@ -3049,7 +3049,7 @@ xlog_recover_inode_pass2(
|
|||
* Make sure the place we're flushing out to really looks
|
||||
* like an inode!
|
||||
*/
|
||||
if (unlikely(dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC))) {
|
||||
if (unlikely(!xfs_verify_magic(bp, dip->di_magic))) {
|
||||
xfs_alert(mp,
|
||||
"%s: Bad inode magic number, dip = "PTR_FMT", dino bp = "PTR_FMT", ino = %Ld",
|
||||
__func__, dip, bp, in_f->ilf_ino);
|
||||
|
|
Загрузка…
Ссылка в новой задаче