Commit c12c5039 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Chandan Babu R

xfs: use static_assert to check struct sizes and offsets

Use the compiler-provided static_assert built-in from C11 instead of
the kernel-specific BUILD_BUG_ON_MSG for the structure size and offset
checks in xfs_ondisk.  This not only gives slightly nicer error messages
in case things go south, but can also be trivially used as-is in
userspace.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: default avatarCarlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent fd45ddb9
...@@ -7,16 +7,16 @@ ...@@ -7,16 +7,16 @@
#define __XFS_ONDISK_H #define __XFS_ONDISK_H
#define XFS_CHECK_STRUCT_SIZE(structname, size) \ #define XFS_CHECK_STRUCT_SIZE(structname, size) \
BUILD_BUG_ON_MSG(sizeof(structname) != (size), "XFS: sizeof(" \ static_assert(sizeof(structname) == (size), \
#structname ") is wrong, expected " #size) "XFS: sizeof(" #structname ") is wrong, expected " #size)
#define XFS_CHECK_OFFSET(structname, member, off) \ #define XFS_CHECK_OFFSET(structname, member, off) \
BUILD_BUG_ON_MSG(offsetof(structname, member) != (off), \ static_assert(offsetof(structname, member) == (off), \
"XFS: offsetof(" #structname ", " #member ") is wrong, " \ "XFS: offsetof(" #structname ", " #member ") is wrong, " \
"expected " #off) "expected " #off)
#define XFS_CHECK_VALUE(value, expected) \ #define XFS_CHECK_VALUE(value, expected) \
BUILD_BUG_ON_MSG((value) != (expected), \ static_assert((value) == (expected), \
"XFS: value of " #value " is wrong, expected " #expected) "XFS: value of " #value " is wrong, expected " #expected)
static inline void __init static inline void __init
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment