Re: fs/xfs/xfs_ondisk.h:96:2: error: call to '__compiletime_assert_96' declared with attribute error: XFS: sizeof(xfs_dir2_sf_entry_t) is wrong, expected 3

From: Christoph Hellwig
Date: Sun Oct 16 2016 - 12:47:29 EST




> head: 1001354ca34179f3db924eb66672442a173147dc

That's Linux 4.9-rc1

> 30cbc591 Darrick J. Wong 2016-03-09 @86 XFS_CHECK_STRUCT_SIZE(xfs_dir2_data_unused_t, 6);

But that's not how xfs_ondisk.h in 4.9-rc1 looks like

> 30cbc591 Darrick J. Wong 2016-03-09 @96 XFS_CHECK_STRUCT_SIZE(xfs_dir2_sf_entry_t, 3);

And that's line 119.

Something is odd about this report.

But both xfs_dir2_data_unused_t and xfs_dir2_sf_entry_t have one thing in
common: they are strutures that aren't padded to a natural alignment at
the end. It seems like the openrisc gcc does implicit padding for them,
which sounds like a nightmware waiting to happen for any sort of disk
or network structure, so I'm really not sure if we should work around
it in xfs.