ksmbd: Support kernel 5.10.220
authorHauke Mehrtens <hauke@hauke-m.de>
Thu, 4 Jul 2024 20:47:31 +0000 (22:47 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 7 Jul 2024 20:22:32 +0000 (22:22 +0200)
In kernel 5.10.220 many file system related patches were backported. One
of them changed the signature of vfs_rename(). Extend the version check
for 5.10.220.

Link: https://github.com/openwrt/openwrt/pull/15843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/kernel/ksmbd/patches/02-kernel-5.10.220-build.patch [new file with mode: 0644]

diff --git a/package/kernel/ksmbd/patches/02-kernel-5.10.220-build.patch b/package/kernel/ksmbd/patches/02-kernel-5.10.220-build.patch
new file mode 100644 (file)
index 0000000..d416fa8
--- /dev/null
@@ -0,0 +1,25 @@
+vfs_rename() was changed in 5.10.220, see:
+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=e864d4d834f820c8be01c9d048cdab6051fe3932
+
+--- a/vfs.c
++++ b/vfs.c
+@@ -1074,12 +1074,18 @@ static int __ksmbd_vfs_rename(struct ksm
+       err = -ENOTEMPTY;
+       if (dst_dent != trap_dent && !d_really_is_positive(dst_dent)) {
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0) || \
++      (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 220) && \
++       LINUX_VERSION_CODE < KERNEL_VERSION(5, 11, 0))
+               struct renamedata rd = {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
+                       .old_mnt_userns = src_user_ns,
++#endif
+                       .old_dir        = d_inode(src_dent_parent),
+                       .old_dentry     = src_dent,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
+                       .new_mnt_userns = dst_user_ns,
++#endif
+                       .new_dir        = d_inode(dst_dent_parent),
+                       .new_dentry     = dst_dent,
+               };