From 03b7befcc0a9308cbac91370046f6c00e5cf1005 Mon Sep 17 00:00:00 2001 From: Shaun Tancheff Date: Sun, 30 Aug 2020 13:53:09 -0500 Subject: [PATCH] LU-13485 libcfs: FIELD_SIZEOF macro removed 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 Change-Id: I48ca9abb931d58919d788199e5089984c9e854dd Reviewed-on: https://review.whamcloud.com/39710 Reviewed-by: Andreas Dilger Reviewed-by: Sebastien Buisson Reviewed-by: James Simmons Tested-by: jenkins Tested-by: Maloo --- libcfs/include/libcfs/linux/linux-misc.h | 9 +++++++++ libcfs/libcfs/crypto/keyring.c | 3 ++- lustre/utils/lstddef.h | 1 - 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libcfs/include/libcfs/linux/linux-misc.h b/libcfs/include/libcfs/linux/linux-misc.h index 3a8f71b..0f230d3 100644 --- a/libcfs/include/libcfs/linux/linux-misc.h +++ b/libcfs/include/libcfs/linux/linux-misc.h @@ -139,4 +139,13 @@ void cfs_arch_init(void); ((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__ */ diff --git a/libcfs/libcfs/crypto/keyring.c b/libcfs/libcfs/crypto/keyring.c index a9dde26..6b9f693 100644 --- a/libcfs/libcfs/crypto/keyring.c +++ b/libcfs/libcfs/crypto/keyring.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "llcrypt_private.h" @@ -157,7 +158,7 @@ static struct key *search_llcrypt_keyring(struct key *keyring, } #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) diff --git a/lustre/utils/lstddef.h b/lustre/utils/lstddef.h index ee7d9b5..46e2901 100644 --- a/lustre/utils/lstddef.h +++ b/lustre/utils/lstddef.h @@ -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 FIELD_SIZEOF(t, f) (sizeof(((t *)0)->f)) #define DIV_ROUND_UP __USER_DIV_ROUND_UP #define DIV_ROUND_DOWN_ULL(ll, d) \ -- 1.8.3.1