• Vincenzo Frascino's avatar
    xfs: Add __packed to xfs_dir2_sf_entry_t definition · ca78eee7
    Vincenzo Frascino authored
    xfs_check_ondisk_structs() verifies that the sizes of the data types
    used by xfs are correct via the XFS_CHECK_STRUCT_SIZE() macro.
    
    Since the structures padding can vary depending on the ABI (e.g. on
    ARM OABI structures are padded to multiple of 32 bits), it may happen
    that xfs_dir2_sf_entry_t size check breaks the compilation with the
    assertion below:
    
    In file included from linux/include/linux/string.h:6,
                     from linux/include/linux/uuid.h:12,
                     from linux/fs/xfs/xfs_linux.h:10,
                     from linux/fs/xfs/xfs.h:22,
                     from linux/fs/xfs/xfs_super.c:7:
    In function ‘xfs_check_ondisk_structs’,
        inlined from ‘init_xfs_fs’ at linux/fs/xfs/xfs_super.c:2025:2:
    linux/include/linux/compiler.h:350:38:
        error: call to ‘__compiletime_assert_107’ declared with attribute
        error: XFS: sizeof(xfs_dir2_sf_entry_t) is wrong, expected 3
        _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
    
    Restore the correct behavior adding __packed to the structure definition.
    
    Cc: Darrick J. Wong <darrick.wong@oracle.com>
    Suggested-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    ca78eee7
xfs_da_format.h 27.2 KB