Whamcloud - gitweb
LU-14651 build: fix build for el7.9 kernels 20/54120/2
authorAndreas Dilger <adilger@dilger.ca>
Tue, 6 Feb 2024 17:35:27 +0000 (10:35 -0700)
committerOleg Drokin <green@whamcloud.com>
Tue, 27 Feb 2024 05:40:22 +0000 (05:40 +0000)
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 <andrew.perepechko@hpe.com>
Change-Id: Ie7fd1c4d51b7a9b086cfca0db941321cbcce7057
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54120
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c

index 4f156ee..0d1d9d2 100644 (file)
@@ -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;
index 3b9809e..7472295 100644 (file)
@@ -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))