]> git.itanic.dy.fi Git - linux-stable/commitdiff
xfs: use static_assert to check struct sizes and offsets
authorChristoph Hellwig <hch@lst.de>
Mon, 4 Dec 2023 20:07:18 +0000 (21:07 +0100)
committerChandan Babu R <chandanbabu@kernel.org>
Thu, 7 Dec 2023 09:45:29 +0000 (15:15 +0530)
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: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
fs/xfs/xfs_ondisk.h

index 21a7e350b4c58ee9b9e1cd164a73ee9a23cb7b7d..d9c988c5ad692eb87a3a2767c0da4ca3d1192c6d 100644 (file)
@@ -7,16 +7,16 @@
 #define __XFS_ONDISK_H
 
 #define XFS_CHECK_STRUCT_SIZE(structname, size) \
-       BUILD_BUG_ON_MSG(sizeof(structname) != (size), "XFS: sizeof(" \
-               #structname ") is wrong, expected " #size)
+       static_assert(sizeof(structname) == (size), \
+               "XFS: sizeof(" #structname ") is wrong, expected " #size)
 
 #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, " \
                "expected " #off)
 
 #define XFS_CHECK_VALUE(value, expected) \
-       BUILD_BUG_ON_MSG((value) != (expected), \
+       static_assert((value) == (expected), \
                "XFS: value of " #value " is wrong, expected " #expected)
 
 static inline void __init