linux 6.2 compat: get_acl() got moved to get_inode_acl() in 6.2
Linux 6.2 renamed the get_acl() operation to get_inode_acl() in the inode_operations struct. This should fix Issue #14323. Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Coleman Kane <ckane@colemankane.org> Closes #14323 Closes #14331
This commit is contained in:
parent
138d2b29dd
commit
b586ea5d93
|
@ -189,6 +189,18 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_GET_ACL], [
|
|||
.get_acl = get_acl_fn,
|
||||
};
|
||||
],[])
|
||||
|
||||
ZFS_LINUX_TEST_SRC([inode_operations_get_inode_acl], [
|
||||
#include <linux/fs.h>
|
||||
|
||||
struct posix_acl *get_inode_acl_fn(struct inode *inode, int type,
|
||||
bool rcu) { return NULL; }
|
||||
|
||||
static const struct inode_operations
|
||||
iops __attribute__ ((unused)) = {
|
||||
.get_inode_acl = get_inode_acl_fn,
|
||||
};
|
||||
],[])
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [
|
||||
|
@ -201,7 +213,12 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [
|
|||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_GET_ACL_RCU, 1, [iops->get_acl() takes rcu])
|
||||
],[
|
||||
ZFS_LINUX_TEST_ERROR([iops->get_acl()])
|
||||
ZFS_LINUX_TEST_RESULT([inode_operations_get_inode_acl], [
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_GET_INODE_ACL, 1, [has iops->get_inode_acl()])
|
||||
],[
|
||||
ZFS_LINUX_TEST_ERROR([iops->get_acl() or iops->get_inode_acl()])
|
||||
])
|
||||
])
|
||||
])
|
||||
])
|
||||
|
|
|
@ -71,7 +71,7 @@ extern int zpl_set_acl(struct user_namespace *userns, struct inode *ip,
|
|||
extern int zpl_set_acl(struct inode *ip, struct posix_acl *acl, int type);
|
||||
#endif /* HAVE_SET_ACL_USERNS */
|
||||
#endif /* HAVE_SET_ACL */
|
||||
#if defined(HAVE_GET_ACL_RCU)
|
||||
#if defined(HAVE_GET_ACL_RCU) || defined(HAVE_GET_INODE_ACL)
|
||||
extern struct posix_acl *zpl_get_acl(struct inode *ip, int type, bool rcu);
|
||||
#elif defined(HAVE_GET_ACL)
|
||||
extern struct posix_acl *zpl_get_acl(struct inode *ip, int type);
|
||||
|
|
|
@ -726,7 +726,11 @@ const struct inode_operations zpl_inode_operations = {
|
|||
#if defined(HAVE_SET_ACL)
|
||||
.set_acl = zpl_set_acl,
|
||||
#endif /* HAVE_SET_ACL */
|
||||
#if defined(HAVE_GET_INODE_ACL)
|
||||
.get_inode_acl = zpl_get_acl,
|
||||
#else
|
||||
.get_acl = zpl_get_acl,
|
||||
#endif /* HAVE_GET_INODE_ACL */
|
||||
#endif /* CONFIG_FS_POSIX_ACL */
|
||||
};
|
||||
|
||||
|
@ -759,7 +763,11 @@ const struct inode_operations zpl_dir_inode_operations = {
|
|||
#if defined(HAVE_SET_ACL)
|
||||
.set_acl = zpl_set_acl,
|
||||
#endif /* HAVE_SET_ACL */
|
||||
#if defined(HAVE_GET_INODE_ACL)
|
||||
.get_inode_acl = zpl_get_acl,
|
||||
#else
|
||||
.get_acl = zpl_get_acl,
|
||||
#endif /* HAVE_GET_INODE_ACL */
|
||||
#endif /* CONFIG_FS_POSIX_ACL */
|
||||
};
|
||||
|
||||
|
@ -798,6 +806,10 @@ const struct inode_operations zpl_special_inode_operations = {
|
|||
#if defined(HAVE_SET_ACL)
|
||||
.set_acl = zpl_set_acl,
|
||||
#endif /* HAVE_SET_ACL */
|
||||
#if defined(HAVE_GET_INODE_ACL)
|
||||
.get_inode_acl = zpl_get_acl,
|
||||
#else
|
||||
.get_acl = zpl_get_acl,
|
||||
#endif /* HAVE_GET_INODE_ACL */
|
||||
#endif /* CONFIG_FS_POSIX_ACL */
|
||||
};
|
||||
|
|
|
@ -1067,7 +1067,7 @@ zpl_get_acl_impl(struct inode *ip, int type)
|
|||
return (acl);
|
||||
}
|
||||
|
||||
#if defined(HAVE_GET_ACL_RCU)
|
||||
#if defined(HAVE_GET_ACL_RCU) || defined(HAVE_GET_INODE_ACL)
|
||||
struct posix_acl *
|
||||
zpl_get_acl(struct inode *ip, int type, bool rcu)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue