Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15baadf7 authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: fix xfs_buf magic number endian checks



Create a separate magic16 check function so that we don't run afoul of
static checkers.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent 7588cbee
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -358,7 +358,7 @@ xfs_attr3_leaf_read_verify(


const struct xfs_buf_ops xfs_attr3_leaf_buf_ops = {
const struct xfs_buf_ops xfs_attr3_leaf_buf_ops = {
	.name = "xfs_attr3_leaf",
	.name = "xfs_attr3_leaf",
	.magic = { cpu_to_be16(XFS_ATTR_LEAF_MAGIC),
	.magic16 = { cpu_to_be16(XFS_ATTR_LEAF_MAGIC),
		     cpu_to_be16(XFS_ATTR3_LEAF_MAGIC) },
		     cpu_to_be16(XFS_ATTR3_LEAF_MAGIC) },
	.verify_read = xfs_attr3_leaf_read_verify,
	.verify_read = xfs_attr3_leaf_read_verify,
	.verify_write = xfs_attr3_leaf_write_verify,
	.verify_write = xfs_attr3_leaf_write_verify,
+4 −4
Original line number Original line Diff line number Diff line
@@ -129,7 +129,7 @@ xfs_da3_blkinfo_verify(
	struct xfs_mount	*mp = bp->b_target->bt_mount;
	struct xfs_mount	*mp = bp->b_target->bt_mount;
	struct xfs_da_blkinfo	*hdr = &hdr3->hdr;
	struct xfs_da_blkinfo	*hdr = &hdr3->hdr;


	if (!xfs_verify_magic(bp, hdr->magic))
	if (!xfs_verify_magic16(bp, hdr->magic))
		return __this_address;
		return __this_address;


	if (xfs_sb_version_hascrc(&mp->m_sb)) {
	if (xfs_sb_version_hascrc(&mp->m_sb)) {
@@ -141,7 +141,7 @@ xfs_da3_blkinfo_verify(
			return __this_address;
			return __this_address;
	}
	}


	return 0;
	return NULL;
}
}


static xfs_failaddr_t
static xfs_failaddr_t
@@ -274,7 +274,7 @@ xfs_da3_node_verify_struct(


const struct xfs_buf_ops xfs_da3_node_buf_ops = {
const struct xfs_buf_ops xfs_da3_node_buf_ops = {
	.name = "xfs_da3_node",
	.name = "xfs_da3_node",
	.magic = { cpu_to_be16(XFS_DA_NODE_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DA_NODE_MAGIC),
		     cpu_to_be16(XFS_DA3_NODE_MAGIC) },
		     cpu_to_be16(XFS_DA3_NODE_MAGIC) },
	.verify_read = xfs_da3_node_read_verify,
	.verify_read = xfs_da3_node_read_verify,
	.verify_write = xfs_da3_node_write_verify,
	.verify_write = xfs_da3_node_write_verify,
+4 −4
Original line number Original line Diff line number Diff line
@@ -198,7 +198,7 @@ xfs_dir3_leaf_write_verify(


const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = {
const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = {
	.name = "xfs_dir3_leaf1",
	.name = "xfs_dir3_leaf1",
	.magic = { cpu_to_be16(XFS_DIR2_LEAF1_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DIR2_LEAF1_MAGIC),
		     cpu_to_be16(XFS_DIR3_LEAF1_MAGIC) },
		     cpu_to_be16(XFS_DIR3_LEAF1_MAGIC) },
	.verify_read = xfs_dir3_leaf_read_verify,
	.verify_read = xfs_dir3_leaf_read_verify,
	.verify_write = xfs_dir3_leaf_write_verify,
	.verify_write = xfs_dir3_leaf_write_verify,
@@ -207,7 +207,7 @@ const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = {


const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = {
const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = {
	.name = "xfs_dir3_leafn",
	.name = "xfs_dir3_leafn",
	.magic = { cpu_to_be16(XFS_DIR2_LEAFN_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DIR2_LEAFN_MAGIC),
		     cpu_to_be16(XFS_DIR3_LEAFN_MAGIC) },
		     cpu_to_be16(XFS_DIR3_LEAFN_MAGIC) },
	.verify_read = xfs_dir3_leaf_read_verify,
	.verify_read = xfs_dir3_leaf_read_verify,
	.verify_write = xfs_dir3_leaf_write_verify,
	.verify_write = xfs_dir3_leaf_write_verify,
+4 −4
Original line number Original line Diff line number Diff line
@@ -277,7 +277,7 @@ xfs_dquot_buf_write_verify(


const struct xfs_buf_ops xfs_dquot_buf_ops = {
const struct xfs_buf_ops xfs_dquot_buf_ops = {
	.name = "xfs_dquot",
	.name = "xfs_dquot",
	.magic = { cpu_to_be16(XFS_DQUOT_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DQUOT_MAGIC),
		     cpu_to_be16(XFS_DQUOT_MAGIC) },
		     cpu_to_be16(XFS_DQUOT_MAGIC) },
	.verify_read = xfs_dquot_buf_read_verify,
	.verify_read = xfs_dquot_buf_read_verify,
	.verify_write = xfs_dquot_buf_write_verify,
	.verify_write = xfs_dquot_buf_write_verify,
@@ -286,7 +286,7 @@ const struct xfs_buf_ops xfs_dquot_buf_ops = {


const struct xfs_buf_ops xfs_dquot_buf_ra_ops = {
const struct xfs_buf_ops xfs_dquot_buf_ra_ops = {
	.name = "xfs_dquot_ra",
	.name = "xfs_dquot_ra",
	.magic = { cpu_to_be16(XFS_DQUOT_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DQUOT_MAGIC),
		     cpu_to_be16(XFS_DQUOT_MAGIC) },
		     cpu_to_be16(XFS_DQUOT_MAGIC) },
	.verify_read = xfs_dquot_buf_readahead_verify,
	.verify_read = xfs_dquot_buf_readahead_verify,
	.verify_write = xfs_dquot_buf_write_verify,
	.verify_write = xfs_dquot_buf_write_verify,
+5 −5
Original line number Original line Diff line number Diff line
@@ -97,7 +97,7 @@ xfs_inode_buf_verify(


		dip = xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog));
		dip = xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog));
		unlinked_ino = be32_to_cpu(dip->di_next_unlinked);
		unlinked_ino = be32_to_cpu(dip->di_next_unlinked);
		di_ok = xfs_verify_magic(bp, dip->di_magic) &&
		di_ok = xfs_verify_magic16(bp, dip->di_magic) &&
			xfs_dinode_good_version(mp, dip->di_version) &&
			xfs_dinode_good_version(mp, dip->di_version) &&
			xfs_verify_agino_or_null(mp, agno, unlinked_ino);
			xfs_verify_agino_or_null(mp, agno, unlinked_ino);
		if (unlikely(XFS_TEST_ERROR(!di_ok, mp,
		if (unlikely(XFS_TEST_ERROR(!di_ok, mp,
@@ -146,7 +146,7 @@ xfs_inode_buf_write_verify(


const struct xfs_buf_ops xfs_inode_buf_ops = {
const struct xfs_buf_ops xfs_inode_buf_ops = {
	.name = "xfs_inode",
	.name = "xfs_inode",
	.magic = { cpu_to_be16(XFS_DINODE_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DINODE_MAGIC),
		     cpu_to_be16(XFS_DINODE_MAGIC) },
		     cpu_to_be16(XFS_DINODE_MAGIC) },
	.verify_read = xfs_inode_buf_read_verify,
	.verify_read = xfs_inode_buf_read_verify,
	.verify_write = xfs_inode_buf_write_verify,
	.verify_write = xfs_inode_buf_write_verify,
@@ -154,7 +154,7 @@ const struct xfs_buf_ops xfs_inode_buf_ops = {


const struct xfs_buf_ops xfs_inode_buf_ra_ops = {
const struct xfs_buf_ops xfs_inode_buf_ra_ops = {
	.name = "xfs_inode_ra",
	.name = "xfs_inode_ra",
	.magic = { cpu_to_be16(XFS_DINODE_MAGIC),
	.magic16 = { cpu_to_be16(XFS_DINODE_MAGIC),
		     cpu_to_be16(XFS_DINODE_MAGIC) },
		     cpu_to_be16(XFS_DINODE_MAGIC) },
	.verify_read = xfs_inode_buf_readahead_verify,
	.verify_read = xfs_inode_buf_readahead_verify,
	.verify_write = xfs_inode_buf_write_verify,
	.verify_write = xfs_inode_buf_write_verify,
Loading