@@ -50,8 +50,8 @@ sb_init(void)
add_command(&version_cmd);
}
-#define OFF(f) bitize(offsetof(xfs_sb_t, sb_ ## f))
-#define SZC(f) szcount(xfs_sb_t, sb_ ## f)
+#define OFF(f) bitize(offsetof(struct xfs_dsb, sb_ ## f))
+#define SZC(f) szcount(struct xfs_dsb, sb_ ## f)
const field_t sb_flds[] = {
{ "magicnum", FLDT_UINT32X, OI(OFF(magicnum)), C1, 0, TYP_NONE },
{ "blocksize", FLDT_UINT32D, OI(OFF(blocksize)), C1, 0, TYP_NONE },
@@ -101,10 +101,8 @@ fixup_superblock(
memset(block_buffer, 0, sb->sb_sectsize);
sb->sb_inprogress = 0;
libxfs_sb_to_disk((struct xfs_dsb *)block_buffer, sb);
- if (xfs_sb_version_hascrc(sb)) {
- xfs_update_cksum(block_buffer, sb->sb_sectsize,
- offsetof(struct xfs_sb, sb_crc));
- }
+ if (xfs_sb_version_hascrc(sb))
+ xfs_update_cksum(block_buffer, sb->sb_sectsize, XFS_SB_CRC_OFF);
if (pwrite(ddev_fd, block_buffer, sb->sb_sectsize, 0) < 0)
fatal("error writing primary superblock: %s\n", strerror(errno));
@@ -358,22 +358,22 @@ secondary_sb_whack(
* size is the size of data which is valid for this sb.
*/
if (xfs_sb_version_hasmetauuid(sb))
- size = offsetof(xfs_sb_t, sb_meta_uuid)
+ size = offsetof(struct xfs_dsb, sb_meta_uuid)
+ sizeof(sb->sb_meta_uuid);
else if (xfs_sb_version_hascrc(sb))
- size = offsetof(xfs_sb_t, sb_lsn)
+ size = offsetof(struct xfs_dsb, sb_lsn)
+ sizeof(sb->sb_lsn);
else if (xfs_sb_version_hasmorebits(sb))
- size = offsetof(xfs_sb_t, sb_bad_features2)
+ size = offsetof(struct xfs_dsb, sb_bad_features2)
+ sizeof(sb->sb_bad_features2);
else if (xfs_sb_version_haslogv2(sb))
- size = offsetof(xfs_sb_t, sb_logsunit)
+ size = offsetof(struct xfs_dsb, sb_logsunit)
+ sizeof(sb->sb_logsunit);
else if (xfs_sb_version_hassector(sb))
- size = offsetof(xfs_sb_t, sb_logsectsize)
+ size = offsetof(struct xfs_dsb, sb_logsectsize)
+ sizeof(sb->sb_logsectsize);
else /* only support dirv2 or more recent */
- size = offsetof(xfs_sb_t, sb_dirblklog)
+ size = offsetof(struct xfs_dsb, sb_dirblklog)
+ sizeof(sb->sb_dirblklog);
/* Check the buffer we read from disk for garbage outside size */