[XFS] superblock endianess annotations
Creates a new xfs_dsb_t that is __be annotated and keeps xfs_sb_t for the incore one. xfs_xlatesb is renamed to xfs_sb_to_disk and only handles the incore -> disk conversion. A new helper xfs_sb_from_disk handles the other direction and doesn't need the slightly hacky table-driven approach because we only ever read the full sb from disk. The handling of shared r/o filesystems has been buggy on little endian system and fixing this required shuffling around of some code in that area. SGI-PV: 968563 SGI-Modid: xfs-linux-melb:xfs-kern:29477a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
This commit is contained in:
parent
347d1c0195
commit
2bdf7cd0ba
6 changed files with 191 additions and 94 deletions
|
@ -3846,7 +3846,7 @@ xlog_do_recover(
|
|||
|
||||
/* Convert superblock from on-disk format */
|
||||
sbp = &log->l_mp->m_sb;
|
||||
xfs_xlatesb(XFS_BUF_TO_SBP(bp), sbp, 1, XFS_SB_ALL_BITS);
|
||||
xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp));
|
||||
ASSERT(sbp->sb_magicnum == XFS_SB_MAGIC);
|
||||
ASSERT(XFS_SB_GOOD_VERSION(sbp));
|
||||
xfs_buf_relse(bp);
|
||||
|
@ -4024,7 +4024,7 @@ xlog_recover_check_summary(
|
|||
sbbp = xfs_getsb(mp, 0);
|
||||
#ifdef XFS_LOUD_RECOVERY
|
||||
sbp = &mp->m_sb;
|
||||
xfs_xlatesb(XFS_BUF_TO_SBP(sbbp), sbp, 1, XFS_SB_ALL_BITS);
|
||||
xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(sbbp));
|
||||
cmn_err(CE_NOTE,
|
||||
"xlog_recover_check_summary: sb_icount %Lu itotal %Lu",
|
||||
sbp->sb_icount, itotal);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue