summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Laß2023-11-08 19:04:30 +0100
committerMichael Laß2023-11-08 19:04:30 +0100
commitdbb99b863d647fd0204638a69e15944afe5b3f82 (patch)
tree72a5f81ba79aeea44ffba745c406a675a7f79348
parent08ff9654623509538494965a846119ebc4ca7028 (diff)
downloadaur-dbb99b863d647fd0204638a69e15944afe5b3f82.tar.gz
Prepare for Linux 6.6
-rw-r--r--.SRCINFO20
-rw-r--r--0001-Linux-6.5-Replace-generic_file_splice_read.patch6
-rw-r--r--0002-LINUX-Make-sysctl-definitions-more-concise.patch6
-rw-r--r--0003-Linux-6.5-Use-register_sysctl.patch6
-rw-r--r--0004-hcrypto-rename-abort-to-_afscrypto_abort.patch6
-rw-r--r--0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch12
-rw-r--r--0006-dir-Introduce-struct-DirEntryMax.patch6
-rw-r--r--0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch61
-rw-r--r--0008-Linux-6.6-convert-to-ctime-accessor-functions.patch105
-rw-r--r--0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch92
-rw-r--r--PKGBUILD27
11 files changed, 314 insertions, 33 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2b1b804239ff..a6c4bb12fc64 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = openafs-modules-dkms
pkgdesc = Kernel module for OpenAFS (dkms)
pkgver = 1.8.10
- pkgrel = 4
+ pkgrel = 5
url = http://www.openafs.org
arch = i686
arch = x86_64
@@ -23,13 +23,19 @@ pkgbase = openafs-modules-dkms
source = 0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
source = 0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
source = 0006-dir-Introduce-struct-DirEntryMax.patch
+ source = 0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch
+ source = 0008-Linux-6.6-convert-to-ctime-accessor-functions.patch
+ source = 0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch
sha256sums = 9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07
sha256sums = 5ea5e184f9b44f5ed45817d2b5a10149d15c8c54f49e0b5b4b773652673cb9b0
- sha256sums = e27ff48ca676ac8d4dc95209bd3b84fe13bb14861aa4a0e0776f3dfe7559ffab
- sha256sums = 4e71ad2009125187632cdb48b2d5eccc9bcaa8ab0733751fed432cfe661ea86e
- sha256sums = daaa1361d5db967bd8b72fff4038cfc933a7027e3c70d10ef6ff673a5d176cb6
- sha256sums = 40e50688a2d4d85eb9b971aaa8563e577db15550aa56c44eab8fe2a688d3f013
- sha256sums = c0792690ed273ce464966b22e36ca431196a913ded6f0def4a46154076fd0eff
- sha256sums = be7e1b0304ff61ed899286fdd18ebdbe71cbbe3eb20f6ac38c5799083b339a4a
+ sha256sums = 9a726876e8a3f99db09cf16df994d01d31673df1953796c6fcd0bc95e3ecafa1
+ sha256sums = 7ef226084bc37dd9298ff39c9bc903796ea07841efedc3906bcc4a744e96e57d
+ sha256sums = b1fa6425438478c79dd97dab6e32e3a8e6ed706f96c9f67c53ede367f9d1ee63
+ sha256sums = 34312040d7139dd34341f567cf57e5c3ac4e1622b8a7289146f0a1204479b8a0
+ sha256sums = 71ed1aee8d0b8a47ae3c1bceb82121666d8ac4b575475032e0342c45b2d380fc
+ sha256sums = 9422f8950311a5b2aba2a7b9b429bfe0652b2f41aaa4519a39c7b92a35513c3f
+ sha256sums = 8ab1ce60ef99c0a3538842f3b8e376c377ec4ca6867d1ccef7379edbb73e102d
+ sha256sums = 0dd8946890016f3a87869eeb79e1eedf34892d1d00903cb044b70a2e43dd81d8
+ sha256sums = ae67a9390f7c9d22cc4fd06964ee5010d90fd5e4cc64ed5137aaf0b36ecfbd32
pkgname = openafs-modules-dkms
diff --git a/0001-Linux-6.5-Replace-generic_file_splice_read.patch b/0001-Linux-6.5-Replace-generic_file_splice_read.patch
index 53f352b403e6..4844e6280103 100644
--- a/0001-Linux-6.5-Replace-generic_file_splice_read.patch
+++ b/0001-Linux-6.5-Replace-generic_file_splice_read.patch
@@ -1,7 +1,7 @@
-From 04083bc9a31156e34782b689993737f7c9def427 Mon Sep 17 00:00:00 2001
+From c971e62f522699a0785d7cd028d93dbf203e793c Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Sun, 9 Jul 2023 18:52:23 -0600
-Subject: [PATCH 1/6] Linux 6.5: Replace generic_file_splice_read
+Subject: [PATCH 1/9] Linux 6.5: Replace generic_file_splice_read
The Linux 6.5 commit:
'splice: Remove generic_file_splice_read()' (c6585011bc)
@@ -63,5 +63,5 @@ index ccec38289..dd8b39d5d 100644
.release = afs_linux_release,
.fsync = afs_linux_fsync,
--
-2.42.0
+2.42.1
diff --git a/0002-LINUX-Make-sysctl-definitions-more-concise.patch b/0002-LINUX-Make-sysctl-definitions-more-concise.patch
index 926818ad8fbb..bd28eb585ae4 100644
--- a/0002-LINUX-Make-sysctl-definitions-more-concise.patch
+++ b/0002-LINUX-Make-sysctl-definitions-more-concise.patch
@@ -1,7 +1,7 @@
-From 48e0bd7d929fac0cd415c7e8f7886782dcd324ef Mon Sep 17 00:00:00 2001
+From 17e481aa89cdc480d700cf9741331e12e5944049 Mon Sep 17 00:00:00 2001
From: Andrew Deason <adeason@sinenomine.net>
Date: Thu, 18 Jul 2019 22:56:48 -0500
-Subject: [PATCH 2/6] LINUX: Make sysctl definitions more concise
+Subject: [PATCH 2/9] LINUX: Make sysctl definitions more concise
Our sysctl definitions are quite verbose, and adding new ones involves
copying a bunch of lines. Make these a little easier to specify, by
@@ -314,5 +314,5 @@ index 8e7dd70e1..894c49412 100644
return -1;
--
-2.42.0
+2.42.1
diff --git a/0003-Linux-6.5-Use-register_sysctl.patch b/0003-Linux-6.5-Use-register_sysctl.patch
index aa269d22a9f3..ae34a129e344 100644
--- a/0003-Linux-6.5-Use-register_sysctl.patch
+++ b/0003-Linux-6.5-Use-register_sysctl.patch
@@ -1,7 +1,7 @@
-From aef0016df74fcd3da0f6cb6622d73cd9ceb77358 Mon Sep 17 00:00:00 2001
+From c96d401d9e044e412ea162d530273476de34211a Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu, 13 Jul 2023 10:54:22 -0600
-Subject: [PATCH 3/6] Linux 6.5: Use register_sysctl()
+Subject: [PATCH 3/9] Linux 6.5: Use register_sysctl()
The linux 6.5 commit:
"sysctl: Remove register_sysctl_table" (b8cbc0855a)
@@ -103,5 +103,5 @@ index ee22158db..811954915 100644
dnl above tests
AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
--
-2.42.0
+2.42.1
diff --git a/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch b/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
index 02be188f3b30..8362bf2389b6 100644
--- a/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
+++ b/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
@@ -1,7 +1,7 @@
-From 01d7316f6773591186f606de5e3b12de28bb0cd9 Mon Sep 17 00:00:00 2001
+From 25bebacfd7bf4461cb49bae9cae2a1e97b9cd1c5 Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Sun, 9 Jul 2023 18:45:15 -0600
-Subject: [PATCH 4/6] hcrypto: rename abort to _afscrypto_abort
+Subject: [PATCH 4/9] hcrypto: rename abort to _afscrypto_abort
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -69,5 +69,5 @@ index 9623fa9e7..ea0f60b64 100644
static_inline ssize_t read(int d, void *buf, size_t nbytes) {return -1;}
static_inline int close(int d) {return -1;}
--
-2.42.0
+2.42.1
diff --git a/0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch b/0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
index 07350c17a2e2..bd4981819d21 100644
--- a/0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
+++ b/0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
@@ -1,7 +1,7 @@
-From fea2bd506b40543d6d9ec862acafb6622fb97ff8 Mon Sep 17 00:00:00 2001
+From bb5b276d6036735cfacad9b27e8d0e50eb2ef819 Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Tue, 29 Aug 2023 14:58:10 -0600
-Subject: [PATCH 5/6] linux: Replace fop iterate with fop iterate_shared
+Subject: [PATCH 5/9] linux: Replace fop iterate with fop iterate_shared
The Linux 6.5 commit:
'vfs: get rid of old '->iterate' directory operation' (3e32715496)
@@ -31,6 +31,12 @@ Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 7437f4d37719ea53711e06ac9675dad1abd6769e)
Change-Id: Id00cfab2c0b51c2167fe19cd9cf7f136450ff174
+Reviewed-on: https://gerrit.openafs.org/15558
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 6de0a646036283266e1d4aeb583e426005ca5ad4)
---
src/afs/LINUX/osi_vnodeops.c | 19 +++++++++++++++----
src/cf/linux-kernel-func.m4 | 10 ++++++++++
@@ -116,5 +122,5 @@ index 8082308e8..52e10acb8 100644
AC_CHECK_LINUX_STRUCT([file_operations], [read_iter], [fs.h])
AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
--
-2.42.0
+2.42.1
diff --git a/0006-dir-Introduce-struct-DirEntryMax.patch b/0006-dir-Introduce-struct-DirEntryMax.patch
index 3f989fedeef7..b33a97dfb55c 100644
--- a/0006-dir-Introduce-struct-DirEntryMax.patch
+++ b/0006-dir-Introduce-struct-DirEntryMax.patch
@@ -1,7 +1,7 @@
-From ffd16089036e05a9db4065eb4d5ae8a217811a78 Mon Sep 17 00:00:00 2001
+From 6578eb24b6f71d3f6e5b489658d47ad2f18ff2ac Mon Sep 17 00:00:00 2001
From: Mark Vitale <mvitale@sinenomine.net>
Date: Fri, 15 Sep 2023 15:01:56 -0400
-Subject: [PATCH 6/6] dir: Introduce struct DirEntryMax
+Subject: [PATCH 6/9] dir: Introduce struct DirEntryMax
Since the introduction of AFS3, the directory package has allocated
space for each directory entry by allocating a DirEntry struct followed
@@ -180,5 +180,5 @@ index f5c8eef42..a26dab0c0 100644
char flag;
char length; /* currently unused */
--
-2.42.0
+2.42.1
diff --git a/0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch b/0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch
new file mode 100644
index 000000000000..e608d56d1004
--- /dev/null
+++ b/0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch
@@ -0,0 +1,61 @@
+From 3ea74b4e38a47c8dd3b2cde5445c5db7021267b1 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Wed, 6 Sep 2023 11:41:55 -0600
+Subject: [PATCH 7/9] LINUX: Pass an array of structs to register_sysctl
+
+The Linux 6.6 commit "sysctl: Add size to register_sysctl" (9edbfe92a0)
+renamed the Linux function register_sysctl() to register_sysctl_sz() and
+added a size parameter. For backward compatibility, a macro,
+register_sysctl, is provided. The macro calculates the size of the
+ctl_table being registered and passes the size to register_sysctl_sz.
+However, in order to perform the size calculation, an array of ctl_table
+structures must be passed as the 2nd parameter.
+
+This change only affects the autoconf test used to determine if Linux
+provides register_sysctl.
+
+Update the autoconf test for register_sysctl to use an actual ctl_table
+structure for the 2nd parameter instead of a NULL.
+
+Reviewed-on: https://gerrit.openafs.org/15559
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+(cherry picked from commit 76879b28798840fa0df441c328ada9667f06b154)
+
+Change-Id: I9209d9fbc4514ab658f373510decfc2e81a5dc5f
+Reviewed-on: https://gerrit.openafs.org/15575
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 5b647bf17a878271e1ce9882e41663770ee73528)
+---
+ src/cf/linux-kernel-func.m4 | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
+index 145725575..105e58cce 100644
+--- a/src/cf/linux-kernel-func.m4
++++ b/src/cf/linux-kernel-func.m4
+@@ -220,10 +220,13 @@ AC_CHECK_LINUX_FUNC([block_dirty_folio],
+ dnl Linux 6.5 removed the Linux function register_sysctl_table(), which
+ dnl was deprecated in Linux 6.3 in favor of register_sysctl() which was
+ dnl introduced in Linux 3.3
++dnl Linux 6.6 changed the function register_sysctl to a macro that requires
++dnl an array of ctl_table structures as its 2nd parameter
+ AC_CHECK_LINUX_FUNC([register_sysctl],
+- [#include <linux/kernel.h>
+- #include <linux/sysctl.h>],
+- [(void)register_sysctl(NULL, NULL);])
++ [#include <linux/kernel.h>
++ #include <linux/sysctl.h>],
++ [[static struct ctl_table cf_sysctl_table[1];
++ (void)register_sysctl(NULL, cf_sysctl_table);]])
+
+ dnl Linux 6.5 removed the file_operations method 'iterate'. Filesystems should
+ dnl using the iterate_shared method (introduced in linux 4.6). Linux 6.4
+--
+2.42.1
+
diff --git a/0008-Linux-6.6-convert-to-ctime-accessor-functions.patch b/0008-Linux-6.6-convert-to-ctime-accessor-functions.patch
new file mode 100644
index 000000000000..482fe7f2bb97
--- /dev/null
+++ b/0008-Linux-6.6-convert-to-ctime-accessor-functions.patch
@@ -0,0 +1,105 @@
+From 381607a5840eac886bbc6737e19acf5b942fe671 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Thu, 5 Oct 2023 14:44:49 -0600
+Subject: [PATCH 8/9] Linux 6.6: convert to ctime accessor functions
+
+The Linux 6.6 commit "fs: add ctime accessors infrastructure"
+(9b6304c1d5) added accessor functions for an inode's ctime member.
+A follow on commit "fs: rename i_ctime field to __i_ctime" (13bc244578)
+changed the name of the inode member ctime to __i_ctime to indicate it's
+a private member.
+
+Add an autoconf test for the ctime accessor function
+'inode_set_ctime()'.
+
+Add an afs_inode_set_ctime to LINUX/osi_machdep.h that is either defined
+as a macro to Linux's inode_set_ctime, or implements a static inline
+function to set a inode's ctime.
+
+Convert the setting of an inode's ctime to use afs_inode_set_ctime().
+
+For more information behind the Linux change, see the commit message
+for:
+ "Merge tag 'v6.6-vfs.ctime'
+ of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs" (615e95831)
+
+Reviewed-on: https://gerrit.openafs.org/15560
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Tested-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit 072c7934cd1b99052882f02294f7036d422b6cf1)
+
+ Conflicts:
+ src/cf/linux-kernel-func.m4 (context)
+
+Change-Id: I729408d12a7946f5778b036ca7e2c14299f3ce8e
+Reviewed-on: https://gerrit.openafs.org/15589
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 6413fdbc913834f2884989e5811841f4ccea2b5f)
+---
+ src/afs/LINUX/osi_machdep.h | 11 +++++++++++
+ src/afs/LINUX/osi_vnodeops.c | 3 +--
+ src/cf/linux-kernel-func.m4 | 6 ++++++
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h
+index 2220e0530..f9ceb359e 100644
+--- a/src/afs/LINUX/osi_machdep.h
++++ b/src/afs/LINUX/osi_machdep.h
+@@ -118,6 +118,17 @@ osi_GetTime(osi_timeval32_t *atv)
+ }
+ #endif
+
++#if defined(HAVE_LINUX_INODE_SET_CTIME)
++# define afs_inode_set_ctime(inode, sec, nsec) inode_set_ctime((inode), (sec), (nsec))
++#else
++static inline void
++afs_inode_set_ctime(struct inode *inode, time64_t sec, long nsec)
++{
++ inode->i_ctime.tv_sec = sec;
++ inode->i_ctime.tv_nsec = nsec;
++}
++#endif
++
+ #undef gop_lookupname
+ #define gop_lookupname osi_lookupname
+
+diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
+index 4e33a189e..1eb99d1d4 100644
+--- a/src/afs/LINUX/osi_vnodeops.c
++++ b/src/afs/LINUX/osi_vnodeops.c
+@@ -1144,8 +1144,7 @@ vattr2inode(struct inode *ip, struct vattr *vp)
+ * any time the sysname list changes.
+ */
+ ip->i_mtime.tv_nsec = afs_sysnamegen;
+- ip->i_ctime.tv_sec = vp->va_ctime.tv_sec;
+- ip->i_ctime.tv_nsec = 0;
++ afs_inode_set_ctime(ip, vp->va_ctime.tv_sec, 0);
+ }
+
+ /* afs_notify_change
+diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
+index 105e58cce..dc26b6056 100644
+--- a/src/cf/linux-kernel-func.m4
++++ b/src/cf/linux-kernel-func.m4
+@@ -238,6 +238,12 @@ AC_CHECK_LINUX_FUNC([wrap_directory_iterator],
+ #include <linux/fs.h>],
+ [(void)wrap_directory_iterator(NULL, NULL, NULL);])
+
++dnl Linux 6.6 requires the use of a getter/setter for accessing a inode's
++dnl ctime member. Test for the setter inode_set_ctime
++AC_CHECK_LINUX_FUNC([inode_set_ctime],
++ [#include <linux/fs.h>],
++ [inode_set_ctime(NULL, 0, 0);])
++
+ dnl Consequences - things which get set as a result of the
+ dnl above tests
+ AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
+--
+2.42.1
+
diff --git a/0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch b/0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch
new file mode 100644
index 000000000000..1a961517969f
--- /dev/null
+++ b/0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch
@@ -0,0 +1,92 @@
+From 0f36a779b39e7b020f2ea841b59bfe06ddf9773f Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Mon, 18 Sep 2023 12:23:01 -0600
+Subject: [PATCH 9/9] Linux 6.6: Pass request_mask to generic_fillattr
+
+The Linux 6.6 commit: "fs: pass the request_mask to generic_fillattr"
+(0d72b92883) added an additional parameter to Linux's
+generic_fillattr() function.
+
+For openafs, generic_fillattr() is called from the inode_operations
+method "getattr", which is implemented in afs_linux_getattr(). The value
+for the request_mask parameter is an existing parameter that is passed
+to the inode_operations "getattr" method.
+
+Add an autoconf test for 4 parameters to the generic_fillattr function
+and update afs_linux_getattr() to pass the request_mask to
+generic_fillattr().
+
+Reviewed-on: https://gerrit.openafs.org/15561
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Tested-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit 4fed232b80fb1ad6c0e1dfb42ed8d8e1e6821dd7)
+
+Change-Id: I5cddc56c5e605a6c5e4f7f3691eafec8ca589d2c
+Reviewed-on: https://gerrit.openafs.org/15590
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 4f1d8104d17d2b4e95c7abaf5498db6b80aefa8f)
+---
+ src/afs/LINUX/osi_vnodeops.c | 4 ++++
+ src/cf/linux-kernel-assorted.m4 | 1 +
+ src/cf/linux-test4.m4 | 13 +++++++++++++
+ 3 files changed, 18 insertions(+)
+
+diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
+index 1eb99d1d4..8a49781b9 100644
+--- a/src/afs/LINUX/osi_vnodeops.c
++++ b/src/afs/LINUX/osi_vnodeops.c
+@@ -1195,7 +1195,11 @@ afs_linux_getattr(struct mnt_idmap *idmap, const struct path *path, struct kstat
+ {
+ int err = afs_linux_revalidate(path->dentry);
+ if (!err) {
++# if defined(GENERIC_FILLATTR_TAKES_REQUEST_MASK)
++ generic_fillattr(afs_mnt_idmap, request_mask, path->dentry->d_inode, stat);
++# else
+ generic_fillattr(afs_mnt_idmap, path->dentry->d_inode, stat);
++# endif
+ }
+ return err;
+ }
+diff --git a/src/cf/linux-kernel-assorted.m4 b/src/cf/linux-kernel-assorted.m4
+index b3a11bc3a..49827d5be 100644
+--- a/src/cf/linux-kernel-assorted.m4
++++ b/src/cf/linux-kernel-assorted.m4
+@@ -58,6 +58,7 @@ LINUX_IOP_LOOKUP_TAKES_UNSIGNED
+ LINUX_D_INVALIDATE_IS_VOID
+ LINUX_KERNEL_READ_OFFSET_IS_LAST
+ LINUX_KEYRING_SEARCH_TAKES_RECURSE
++LINUX_GENERIC_FILLATTR_TAKES_REQUEST_MASK
+ ])
+
+
+diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4
+index 0d6b645f4..f15c6b94d 100644
+--- a/src/cf/linux-test4.m4
++++ b/src/cf/linux-test4.m4
+@@ -853,3 +853,16 @@ AC_DEFUN([LINUX_KEYRING_SEARCH_TAKES_RECURSE], [
+ [define if your keyring_search has the recurse parameter],
+ [])
+ ])
++
++dnl Linux 6.6 added the 'request_mask' parameter to generic_fillattr.
++AC_DEFUN([LINUX_GENERIC_FILLATTR_TAKES_REQUEST_MASK], [
++ AC_CHECK_LINUX_BUILD([whether generic_fillattr has the request_mask parameter],
++ [ac_cv_linux_func_generic_fillattr_takes_request_mask],
++ [#include <linux/fs.h>],
++ [
++ generic_fillattr(NULL, 0, NULL, NULL);
++ ],
++ [GENERIC_FILLATTR_TAKES_REQUEST_MASK],
++ [define if your generic_fillattr has the request_mask_parameter],
++ [])
++])
+--
+2.42.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 4c3f403459a7..ca9180ef74f0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@
pkgname=openafs-modules-dkms
_srcname=openafs
pkgver=1.8.10
-pkgrel=4
+pkgrel=5
pkgdesc="Kernel module for OpenAFS (dkms)"
arch=('i686' 'x86_64' 'armv7h')
url="http://www.openafs.org"
@@ -23,15 +23,21 @@ source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz
0003-Linux-6.5-Use-register_sysctl.patch
0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
- 0006-dir-Introduce-struct-DirEntryMax.patch)
+ 0006-dir-Introduce-struct-DirEntryMax.patch
+ 0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch
+ 0008-Linux-6.6-convert-to-ctime-accessor-functions.patch
+ 0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch)
sha256sums=('9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07'
'5ea5e184f9b44f5ed45817d2b5a10149d15c8c54f49e0b5b4b773652673cb9b0'
- 'e27ff48ca676ac8d4dc95209bd3b84fe13bb14861aa4a0e0776f3dfe7559ffab'
- '4e71ad2009125187632cdb48b2d5eccc9bcaa8ab0733751fed432cfe661ea86e'
- 'daaa1361d5db967bd8b72fff4038cfc933a7027e3c70d10ef6ff673a5d176cb6'
- '40e50688a2d4d85eb9b971aaa8563e577db15550aa56c44eab8fe2a688d3f013'
- 'c0792690ed273ce464966b22e36ca431196a913ded6f0def4a46154076fd0eff'
- 'be7e1b0304ff61ed899286fdd18ebdbe71cbbe3eb20f6ac38c5799083b339a4a')
+ '9a726876e8a3f99db09cf16df994d01d31673df1953796c6fcd0bc95e3ecafa1'
+ '7ef226084bc37dd9298ff39c9bc903796ea07841efedc3906bcc4a744e96e57d'
+ 'b1fa6425438478c79dd97dab6e32e3a8e6ed706f96c9f67c53ede367f9d1ee63'
+ '34312040d7139dd34341f567cf57e5c3ac4e1622b8a7289146f0a1204479b8a0'
+ '71ed1aee8d0b8a47ae3c1bceb82121666d8ac4b575475032e0342c45b2d380fc'
+ '9422f8950311a5b2aba2a7b9b429bfe0652b2f41aaa4519a39c7b92a35513c3f'
+ '8ab1ce60ef99c0a3538842f3b8e376c377ec4ca6867d1ccef7379edbb73e102d'
+ '0dd8946890016f3a87869eeb79e1eedf34892d1d00903cb044b70a2e43dd81d8'
+ 'ae67a9390f7c9d22cc4fd06964ee5010d90fd5e4cc64ed5137aaf0b36ecfbd32')
prepare() {
cd "${srcdir}/${_srcname}-${pkgver}"
@@ -44,6 +50,11 @@ prepare() {
patch -p1 < "${srcdir}"/0005-linux-Replace-fop-iterate-with-fop-iterate_shared.patch
patch -p1 < "${srcdir}"/0006-dir-Introduce-struct-DirEntryMax.patch
+ # Patches for Linux 6.6
+ patch -p1 < "${srcdir}"/0007-LINUX-Pass-an-array-of-structs-to-register_sysctl.patch
+ patch -p1 < "${srcdir}"/0008-Linux-6.6-convert-to-ctime-accessor-functions.patch
+ patch -p1 < "${srcdir}"/0009-Linux-6.6-Pass-request_mask-to-generic_fillattr.patch
+
# Only needed when changes to configure were made
./regen.sh -q
}