From: Kevin Darbyshire-Bryant Date: Tue, 5 Jul 2022 14:27:52 +0000 (+0100) Subject: ksmbd: fix compile on kernel 5.15.52+ X-Git-Tag: v23.05.0-rc1~3033 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=c29b13cfa09ebb4e81d4c6f65a4d1190316126bc ksmbd: fix compile on kernel 5.15.52+ Backport upstream fix to build on kernel 5.15.52 or later since kernel devs backported newer functionality to older kernels. Signed-off-by: Kevin Darbyshire-Bryant --- diff --git a/package/kernel/ksmbd/patches/10-fix-build-on-kernel-5.15.52-or-higher.patch b/package/kernel/ksmbd/patches/10-fix-build-on-kernel-5.15.52-or-higher.patch new file mode 100644 index 0000000000..68cf168569 --- /dev/null +++ b/package/kernel/ksmbd/patches/10-fix-build-on-kernel-5.15.52-or-higher.patch @@ -0,0 +1,69 @@ +From 98bc509f92cccedd7d51d5ebadc424e2d7f5cbb4 Mon Sep 17 00:00:00 2001 +From: Chukun Pan +Date: Tue, 5 Jul 2022 15:20:10 +0800 +Subject: [PATCH] ksmbd: fixes build on kernel 5.15.52 or higher + +The 5.15.52 kernel downported two commits "fs: remove unused low-level +mapping helpers" and "fs: use low-level mapping helpers", which broken +the compilation[1]. This commit fixed it. + +1. https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.52 + +Signed-off-by: Chukun Pan +Signed-off-by: Namjae Jeon +--- + smbacl.c | 6 ++++-- + smbacl.h | 6 ++++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/smbacl.c b/smbacl.c +index 275e357..19c682a 100644 +--- a/smbacl.c ++++ b/smbacl.c +@@ -281,7 +281,8 @@ static int sid_to_id(struct user_namespace *user_ns, + uid_t id; + + id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]); +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) || \ ++ (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 52) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)) + uid = mapped_kuid_user(user_ns, &init_user_ns, KUIDT_INIT(id)); + #else + /* +@@ -304,7 +305,8 @@ static int sid_to_id(struct user_namespace *user_ns, + gid_t id; + + id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]); +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) || \ ++ (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 52) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)) + gid = mapped_kgid_user(user_ns, &init_user_ns, KGIDT_INIT(id)); + #else + /* +diff --git a/smbacl.h b/smbacl.h +index f2bcdb4..7368bf4 100644 +--- a/smbacl.h ++++ b/smbacl.h +@@ -221,7 +221,8 @@ static inline uid_t posix_acl_uid_translate(struct user_namespace *mnt_userns, + kuid_t kuid; + + /* If this is an idmapped mount, apply the idmapping. */ +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) || \ ++ (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 52) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)) + kuid = mapped_kuid_fs(mnt_userns, &init_user_ns, pace->e_uid); + #else + kuid = kuid_into_mnt(mnt_userns, pace->e_uid); +@@ -241,7 +242,8 @@ static inline gid_t posix_acl_gid_translate(struct user_namespace *mnt_userns, + kgid_t kgid; + + /* If this is an idmapped mount, apply the idmapping. */ +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0) || \ ++ (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 52) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)) + kgid = mapped_kgid_fs(mnt_userns, &init_user_ns, pace->e_gid); + #else + kgid = kgid_into_mnt(mnt_userns, pace->e_gid); +-- +2.36.1 +