Whamcloud - gitweb
LU-13485 libcfs: FIELD_SIZEOF macro removed 10/39710/6
authorShaun Tancheff <shaun.tancheff@hpe.com>
Sun, 30 Aug 2020 18:53:09 +0000 (13:53 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 26 Feb 2021 22:12:13 +0000 (22:12 +0000)
Linux v4.15-rc2-5-g4229a470175b introduced sizeof_field() macro
Linux v5.5-rc4-1-g1f07dcc459d5 removed FIELD_SIZEOF() macro

Provide a sizeof_field() macro in terms of FIELD_SIZEOF()
when sizeof_field() is not provided.

Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I48ca9abb931d58919d788199e5089984c9e854dd
Reviewed-on: https://review.whamcloud.com/39710
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
libcfs/include/libcfs/linux/linux-misc.h
libcfs/libcfs/crypto/keyring.c
lustre/utils/lstddef.h

index 3a8f71b..0f230d3 100644 (file)
@@ -139,4 +139,13 @@ void cfs_arch_init(void);
                ((type *)(__mptr - offsetof(type, member))); })
 #endif
 
                ((type *)(__mptr - offsetof(type, member))); })
 #endif
 
+/*
+ * Linux v4.15-rc2-5-g4229a470175b added sizeof_field()
+ * Linux v5.5-rc4-1-g1f07dcc459d5 removed FIELD_SIZEOF()
+ * Proved a sizeof_field in terms of FIELD_SIZEOF() when one is not provided
+ */
+#ifndef sizeof_field
+#define sizeof_field(type, member)     FIELD_SIZEOF(type, member)
+#endif
+
 #endif /* __LIBCFS_LINUX_MISC_H__ */
 #endif /* __LIBCFS_LINUX_MISC_H__ */
index a9dde26..6b9f693 100644 (file)
@@ -25,6 +25,7 @@
 #include <crypto/skcipher.h>
 #include <linux/key-type.h>
 #include <linux/seq_file.h>
 #include <crypto/skcipher.h>
 #include <linux/key-type.h>
 #include <linux/seq_file.h>
+#include <libcfs/linux/linux-misc.h>
 
 #include "llcrypt_private.h"
 
 
 #include "llcrypt_private.h"
 
@@ -157,7 +158,7 @@ static struct key *search_llcrypt_keyring(struct key *keyring,
 }
 
 #define LLCRYPT_FS_KEYRING_DESCRIPTION_SIZE    \
 }
 
 #define LLCRYPT_FS_KEYRING_DESCRIPTION_SIZE    \
-       (CONST_STRLEN("llcrypt-") + FIELD_SIZEOF(struct super_block, s_id))
+       (CONST_STRLEN("llcrypt-") + sizeof_field(struct super_block, s_id))
 
 #define LLCRYPT_MK_DESCRIPTION_SIZE    (2 * LLCRYPT_KEY_IDENTIFIER_SIZE + 1)
 
 
 #define LLCRYPT_MK_DESCRIPTION_SIZE    (2 * LLCRYPT_KEY_IDENTIFIER_SIZE + 1)
 
index ee7d9b5..46e2901 100644 (file)
@@ -33,7 +33,6 @@
 #define round_up(x, y) ((((x) - 1) | __round_mask(x, y)) + 1)
 #define round_down(x, y) ((x) & ~__round_mask(x, y))
 
 #define round_up(x, y) ((((x) - 1) | __round_mask(x, y)) + 1)
 #define round_down(x, y) ((x) & ~__round_mask(x, y))
 
-#define FIELD_SIZEOF(t, f) (sizeof(((t *)0)->f))
 #define DIV_ROUND_UP __USER_DIV_ROUND_UP
 
 #define DIV_ROUND_DOWN_ULL(ll, d) \
 #define DIV_ROUND_UP __USER_DIV_ROUND_UP
 
 #define DIV_ROUND_DOWN_ULL(ll, d) \