mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-07 22:42:04 +00:00
xfs: don't use the incore struct xfs_sb for offsets into struct xfs_dsb
Currently, the XFS_SB_CRC_OFF macro uses the incore superblock struct (xfs_sb) to compute the address of sb_crc within the ondisk superblock struct (xfs_dsb). This is a landmine if we ever change the layout of the incore superblock (as we're about to do), so redefine the macro to use xfs_dsb to compute the layout of xfs_dsb. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
47d4d5961f
commit
ac3a027516
@ -90,8 +90,7 @@ struct xfs_ifork;
|
||||
#define XFSLABEL_MAX 12
|
||||
|
||||
/*
|
||||
* Superblock - in core version. Must match the ondisk version below.
|
||||
* Must be padded to 64 bit alignment.
|
||||
* Superblock - in core version. Must be padded to 64 bit alignment.
|
||||
*/
|
||||
typedef struct xfs_sb {
|
||||
uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */
|
||||
@ -178,10 +177,8 @@ typedef struct xfs_sb {
|
||||
/* must be padded to 64 bit alignment */
|
||||
} xfs_sb_t;
|
||||
|
||||
#define XFS_SB_CRC_OFF offsetof(struct xfs_sb, sb_crc)
|
||||
|
||||
/*
|
||||
* Superblock - on disk version. Must match the in core version above.
|
||||
* Superblock - on disk version.
|
||||
* Must be padded to 64 bit alignment.
|
||||
*/
|
||||
struct xfs_dsb {
|
||||
@ -265,6 +262,8 @@ struct xfs_dsb {
|
||||
/* must be padded to 64 bit alignment */
|
||||
};
|
||||
|
||||
#define XFS_SB_CRC_OFF offsetof(struct xfs_dsb, sb_crc)
|
||||
|
||||
/*
|
||||
* Misc. Flags - warning - these will be cleared by xfs_repair unless
|
||||
* a feature bit is set when the flag is used.
|
||||
|
@ -85,6 +85,7 @@ xfs_check_ondisk_structs(void)
|
||||
XFS_CHECK_STRUCT_SIZE(xfs_attr_leaf_name_remote_t, 12);
|
||||
*/
|
||||
|
||||
XFS_CHECK_OFFSET(struct xfs_dsb, sb_crc, 224);
|
||||
XFS_CHECK_OFFSET(xfs_attr_leaf_name_local_t, valuelen, 0);
|
||||
XFS_CHECK_OFFSET(xfs_attr_leaf_name_local_t, namelen, 2);
|
||||
XFS_CHECK_OFFSET(xfs_attr_leaf_name_local_t, nameval, 3);
|
||||
|
Loading…
Reference in New Issue
Block a user