From: Andrew Perepechko Date: Mon, 18 Dec 2023 18:19:26 +0000 (-0700) Subject: LU-14651 build: fix build for el7.9 kernels X-Git-Tag: 2.15.4-RC2~5 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=531b666e4011464939b41fed75653b34b7f78f3e;p=fs%2Flustre-release.git LU-14651 build: fix build for el7.9 kernels Handle extra setattr_prepare() argument added in Linux 5.12 kernels when building on older kernels. Lustre-change: https://review.whamcloud.com/53503 Lustre-commit: 7815835d21a5c0b6dbc58d9bc9dd823d4952f86f HPE-bug-id: LUS-12059 Signed-off-by: Andrew Perepechko Change-Id: Ie7fd1c4d51b7a9b086cfca0db941321cbcce7057 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53504 Reviewed-by: Oleg Drokin Reviewed-by: Sebastien Buisson Reviewed-by: James Simmons Tested-by: jenkins Tested-by: Sebastien Buisson Tested-by: James Simmons Tested-by: Maloo --- diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index 9c75c18..f248bc8 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -279,11 +279,16 @@ struct ll_inode_info { #define inode_permission(ns, inode, mask) inode_permission(inode, mask) #define generic_permission(ns, inode, mask) generic_permission(inode, mask) #define simple_setattr(ns, de, iattr) simple_setattr(de, iattr) +#define ll_setattr(ns, de, attr) ll_setattr(de, attr) +#ifdef HAVE_STRUCT_POSIX_ACL_XATTR +#define setattr_prepare(ns, de, at) setattr_prepare(de, at) +#else +#define setattr_prepare(ns, de, at) inode_change_ok(de->d_inode, at) +#endif #define ll_inode_permission(ns, inode, mask) ll_inode_permission(inode, mask) #ifdef HAVE_INODEOPS_ENHANCED_GETATTR #define ll_getattr(ns, path, stat, mask, fl) ll_getattr(path, stat, mask, fl) #endif /* HAVE_INODEOPS_ENHANCED_GETATTR */ -#define ll_setattr(ns, de, attr) ll_setattr(de, attr) #endif static inline void ll_trunc_sem_init(struct ll_trunc_sem *sem) diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index f67ea3f..5121d45 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -2435,6 +2435,10 @@ int ll_setattr(struct user_namespace *mnt_userns, struct dentry *de, enum op_xvalid xvalid = 0; int rc; + rc = setattr_prepare(mnt_userns, de, attr); + if (rc) + return rc; + rc = llcrypt_prepare_setattr(de, attr); if (rc) return rc;