From: Andreas Dilger Date: Tue, 6 Feb 2024 17:35:27 +0000 (-0700) Subject: LU-14651 build: fix build for el7.9 kernels X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=c86322e120bbcfca00fe3b441afb3e30a77c0a44;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/+/54120 Tested-by: jenkins Tested-by: Andreas Dilger Reviewed-by: Andreas Dilger Reviewed-by: James Simmons --- diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index 4f156ee..0d1d9d2 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -236,6 +236,14 @@ struct ll_inode_info { struct list_head lli_xattrs; /* ll_xattr_entry->xe_list */ }; +#ifndef HAVE_USER_NAMESPACE_ARG +#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 +#endif + static inline __u32 ll_layout_version_get(struct ll_inode_info *lli) { __u32 gen; diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 3b9809e..7472295 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -1784,6 +1784,11 @@ int ll_setattr(struct dentry *de, struct iattr *attr) { int mode = de->d_inode->i_mode; enum op_xvalid xvalid = 0; + int rc; + + rc = setattr_prepare(map, de, attr); + if (rc) + return rc; if ((attr->ia_valid & (ATTR_CTIME|ATTR_SIZE|ATTR_MODE)) == (ATTR_CTIME|ATTR_SIZE|ATTR_MODE))