From 433a80c6fcc2c025f3e2fbe1af3469a51e7aaf45 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 21 Sep 2022 14:36:11 -0700 Subject: [PATCH] Add compat for changing posix_acl_valid arguments Signed-off-by: Zach Brown --- kmod/src/Makefile.kernelcompat | 9 +++++++++ kmod/src/acl.c | 2 +- kmod/src/kernelcompat.h | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index bd236c43..d7995cc5 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -34,3 +34,12 @@ endif ifneq (,$(shell grep 'FMODE_KABI_ITERATE' include/linux/fs.h)) ccflags-y += -DKC_FMODE_KABI_ITERATE endif + +# +# v4.7-rc2-23-g0d4d717f2583 +# +# Added user_ns argument to posix_acl_valid +# +ifneq (,$(shell grep 'posix_acl_valid.*user_ns,' include/linux/posix_acl.h)) +ccflags-y += -DKC_POSIX_ACL_VALID_USER_NS +endif diff --git a/kmod/src/acl.c b/kmod/src/acl.c index d6ab6a3c..11a83266 100644 --- a/kmod/src/acl.c +++ b/kmod/src/acl.c @@ -258,7 +258,7 @@ int scoutfs_acl_set_xattr(struct dentry *dentry, const char *name, const void *v return PTR_ERR(acl); if (acl) { - ret = posix_acl_valid(&init_user_ns, acl); + ret = kc_posix_acl_valid(&init_user_ns, acl); if (ret) goto out; } diff --git a/kmod/src/kernelcompat.h b/kmod/src/kernelcompat.h index 6899f684..12e16a10 100644 --- a/kmod/src/kernelcompat.h +++ b/kmod/src/kernelcompat.h @@ -46,4 +46,10 @@ static inline int dir_emit_dots(struct file *file, void *dirent, } #endif +#ifdef KC_POSIX_ACL_VALID_USER_NS +#define kc_posix_acl_valid(user_ns, acl) posix_acl_valid(user_ns, acl) +#else +#define kc_posix_acl_valid(user_ns, acl) posix_acl_valid(acl) +#endif + #endif