diff options
author | Michael Laß | 2024-05-18 14:28:57 +0200 |
---|---|---|
committer | Michael Laß | 2024-05-18 14:28:57 +0200 |
commit | f612007c49ecd50d4982f3ed210ee8d91f558da8 (patch) | |
tree | d587df8de6477e520fe8203cc4266f26b20d13b6 | |
parent | 45281a127a56134b3569b085c32ffe02f0c07c39 (diff) | |
download | aur-f612007c49ecd50d4982f3ed210ee8d91f558da8.tar.gz |
Add patches for Linux 6.9 and some bug fixes
35 files changed, 793 insertions, 522 deletions
@@ -1,7 +1,7 @@ pkgbase = openafs-modules pkgdesc = Kernel module for OpenAFS pkgver = 1.8.11 - pkgrel = 1 + pkgrel = 2 url = http://www.openafs.org install = openafs-modules.install arch = i686 @@ -20,10 +20,10 @@ pkgbase = openafs-modules source = 0003-afs-Remove-SRXAFSCB_GetDE.patch source = 0004-afs-remove-dead-ICL-fstrace-code.patch source = 0005-cf-Add-function-prototypes-for-linux-conftest.patch - source = 0006-afs-Remove-DFlushDCache.patch - source = 0007-afs-Remove-afs_MemExtendEntry.patch - source = 0008-afs-Remove-afs_osi_UnmaskUserLoop.patch - source = 0009-afs-Remove-dummy_PSetAcl.patch + source = 0006-afs-Remove-afs_MemExtendEntry.patch + source = 0007-afs-Remove-afs_osi_UnmaskUserLoop.patch + source = 0008-afs-Remove-dummy_PSetAcl.patch + source = 0009-afs-Remove-DFlushDCache.patch source = 0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch source = 0011-afs-Remove-afs_DbgDisconFiles.patch source = 0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch @@ -43,36 +43,42 @@ pkgbase = openafs-modules source = 0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch source = 0027-Linux-6.8-Remove-ctl_table-sentinels.patch source = 0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch - source = 0029-afs-Drop-GLOCK-for-various-Rx-calls.patch + source = 0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch + source = 0030-Linux-Define-afs_thread_wrapper-as-static.patch + source = 0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch + source = 0032-afs-Reintroduce-and-use-DFlushDCache.patch sha256sums = e2efb4710996b7d23198b53c56295a8f9e24e8a555317c5fc63b8125a3714ecd - sha256sums = e85f5656f76700e4236b1033cf4b7f08c59ab757d52d2a67dcb2c65762388733 - sha256sums = 8d48b727e77b1e952310ad9f94bd4ece9e64e1f03a35463bb23dffa1009738d8 - sha256sums = c44c91e31df1ec77f1a39eb7b172c4e348e41b293ae05606288bfe333ad7c29b - sha256sums = 48dd1065f8bcb90d0bdc7ae5b484da5a1a5d93461f6ac1d6ceef103d2b807f22 - sha256sums = ce054eadb9c84173b0bd1318ef88cb9500049431779252e501491d9389141bad - sha256sums = ae525167f5f6f7e0301eee70b3424e51e45e56e9fe9588b95cf72d5fa96717b9 - sha256sums = 974861c174969591351c5fb4a47946e02f979c2b5590f89d9d16dfbe4238451f - sha256sums = e5d72b5e08c63df10299b56bfebf3c5c44e07d16c0436fb2c0eef3614ad505e3 - sha256sums = 8143496d251dd1f13b8603b4e692fbd67f925caccd12035598e70542d24389f5 - sha256sums = 216e684f8181adc4a4b3c4ba934997cada10831c5608e724e91d09e836ec626d - sha256sums = 2e573535da21f8be5b83c8e82166c0bdc5896293b28e793fa4c1bdb9ff942dbd - sha256sums = 0535fbdd3c8431b7b16842f1fa6592355f647ae456112e97d34d541e74204be5 - sha256sums = 7aacef8bd6832f119472f7d52af36951a56f1e54d36d9bce59998fcf818517e5 - sha256sums = 3db5177c80a7694c1be3b74f419570a5076edc519b40112cf17e68fecc7574a3 - sha256sums = 9fe647d54c999e358597fe671dc7e88da609a69bb93624e15919d9b4cc4fdb5a - sha256sums = 7ced2ca2d4f54b2fa15c584869de122810ee0d1b024d1bf541f38d77172e311c - sha256sums = c88c8b8e1c993da773eea3ae4f17e5171189ed7e1fc5769fdb49d82cae0cffd3 - sha256sums = c57c826c9f26568241bcb17eff04067a1b5e388f72523765aa80d480c3690325 - sha256sums = d508dd6136170fcb4794e283178f9c5f4ede12f415b882ba7c13470e8f09bdde - sha256sums = 894eb7e7889749cefa9cbf86e2eceda470d20510a5a7a5be2cd851f8570e076c - sha256sums = fb36b0ef833811910cae42d8411a00dcf2aff08c8799f766e32cda3ad5a7f0e2 - sha256sums = d08d38ff53890632900de5d69dc105711d5bce2d02a55ffe70c87b38ca39aca7 - sha256sums = db700b5f62e979af60856278306e8fce6df21dfb24996dd0d690c82222f4d793 - sha256sums = 46294f8323bf71ee96c8f765bb36fc5e0af6b2257deac7eaea4f4cb9568d9fe1 - sha256sums = 5d4a2614065046a32ef805198349e70476d3ed9e079a4ef7577e71e0dac1d2fa - sha256sums = 4c8201265f558bac146bf8cee38f8c925b2c2262133ae88d9eb2f0623a0ada07 - sha256sums = ceb02a7a5e596434215693f065ad6221f568f85aab173df4752248d2c4d8f971 - sha256sums = 2b05242c5516871191a251a617c6c02e80f34b92b6cfeb0c9c6a1f3e0ff915d9 - sha256sums = 82b197ac5f2639d891c8a646963ef6b87ef4171c7a70ac6ca7a9a55511090952 + sha256sums = 8156fa6b024531b9c18d3727e4a7319eb270bb862c6f9ee44eabf6920bcf3736 + sha256sums = 18f7fdd1c3a392f5b6c660d9eedfdf189ce19629da1c2f4e8197aa1198df9008 + sha256sums = 863eba3beee07f972d478624587975fc997a78867e3f9cb2f4ab649bfabae0bf + sha256sums = 22c4102a0919b71af82ec8525c016b9692424f67ace207c225ebab838111d5cc + sha256sums = d79cd75af56537a28cd15692af61c1f701527795dea789b85535976fb258f420 + sha256sums = 9c0423ebc12378fff0595735510e80e0759895d3d763f1d6d364d6fc22d8d272 + sha256sums = 58a2fbbd131a6d480ac1ede5a79c9ae90ce0a9edc81d66b4d3dede9980c662b8 + sha256sums = 1aefdecb45083192fcfb76e8029404fb82295d1051699bea9cddc7c0be81e00e + sha256sums = 6542a046d99b304d716c6034aa468ebc7dc76e37507d328bb82b3797fef39220 + sha256sums = dff332541f05a125fd4b7713e8c6a2030fa9abf4ecb56e7b0c7ee554f73a9fa9 + sha256sums = 8c59d49b409fde14538f7eab2efbf51f281e4ca977cb4658fb0197ae5c317aef + sha256sums = 45302b6323b76162d648883e52ae68cf95933e96697f58a4f2b948687a1e4d51 + sha256sums = 0be51a38cc7208ecbf855880115fe797b6bef0005ff53391d2f7a636bb67eff4 + sha256sums = 8882dec77cf6bac3c2022c3b32460f76988a736aa3312b3ecc1daaca4a8d601e + sha256sums = 3f7de2872cd90e50e103a3c388c9a4501e85d27041d4e696ca49a885b4ca7b60 + sha256sums = d750390ac3ef573793c44862b6f59302ef0ba6b2ba24bbded58dc70d83f25e47 + sha256sums = b31fd46ae26a2a34c5d81c77edccc69a42c8d0362cc25254730fddedb22753c8 + sha256sums = 963b27b44402149159dd8f5c1e9821704cacd2a6de1fb2c8088bfb11f10d1c99 + sha256sums = 09bac17f405b2f00d99278ecc441596aab1ac1dae80586efa86ade3d7806c266 + sha256sums = 4b2de147029b6f91fdeeddb8276fbc577926378440d019f2a197c3b51517e6d8 + sha256sums = 9354aa971f3d9e460ef3179347f8ee7f6c38597571f84d648a237a7edcaf4835 + sha256sums = 067c31796977aef73747f85a85cb9045c4361502eb7f9d622aecf2dd9ed5b723 + sha256sums = 063a8d942eb3a9f5a27780dd12b2dea2e67f8f3b35d7bfe2eedfe879ea2b1b40 + sha256sums = 0072ef62a412e23c136bb69e67ec05bc802cc96636e9a0827cc3dd3dd43bc935 + sha256sums = 3564c0a944f6e2478477105625809729e6183213b969fe2ed9b69483244c4be7 + sha256sums = 072f7aa32c711447d794ad430b68475fdfa3e21e805dab640086226fbc328c66 + sha256sums = 867086d1809b63a1e87afc7c3b440f6bccb39e6fbe40d05fc3a35aa5ecf4f1cd + sha256sums = 2ff01dbf33ebb7b3cb6e5be83a6adab906ae287836cc1584561144f5be63d6cd + sha256sums = 049b82cb0b1427d87460f703cf1926e4b86b386afed1e5ebc78d1ac61b0ca137 + sha256sums = fe36d327804d315cb54b4cedcb44631fe70044db6ce3ba88387698c4b91808df + sha256sums = 0a3f1b80d2312edfd9424e0bbcf943a13b049c9556778b600b103d11e9b62182 + sha256sums = 32f0bda8b9a3a408af5247347e2896011122362584abcd03b5c63973bd863d07 pkgname = openafs-modules diff --git a/0001-afs-Make-afs_AllocDCache-static.patch b/0001-afs-Make-afs_AllocDCache-static.patch index ebbc523a5f38..61d7f30dfe47 100644 --- a/0001-afs-Make-afs_AllocDCache-static.patch +++ b/0001-afs-Make-afs_AllocDCache-static.patch @@ -1,7 +1,7 @@ -From 78e644655a3858113f33f534d018220ab2eaabc0 Mon Sep 17 00:00:00 2001 +From fca6fd911e493a344c040a95ea4ab820e2828802 Mon Sep 17 00:00:00 2001 From: Andrew Deason <adeason@sinenomine.net> Date: Thu, 28 Jun 2018 12:50:52 -0500 -Subject: [PATCH 01/29] afs: Make afs_AllocDCache static +Subject: [PATCH 01/32] afs: Make afs_AllocDCache static Nothing using afs_AllocDCache outside of afs_dcache.c. Declare the function static, to ensure that nobody else uses it, and to maybe @@ -13,6 +13,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 4ab70de9641807bd06056f0c1ac79550453b9574) Change-Id: I6fd9e31c4b2e862174402f731a77c91599893223 +Reviewed-on: https://gerrit.openafs.org/15679 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_dcache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -31,5 +36,5 @@ index 3572f2f23..46d0bdba5 100644 struct VenusFid *ashFid) { -- -2.44.0 +2.45.1 diff --git a/0002-LINUX-Minor-osi_vfsop.c-cleanup.patch b/0002-LINUX-Minor-osi_vfsop.c-cleanup.patch index 252cea0db5da..1af30a622755 100644 --- a/0002-LINUX-Minor-osi_vfsop.c-cleanup.patch +++ b/0002-LINUX-Minor-osi_vfsop.c-cleanup.patch @@ -1,7 +1,7 @@ -From 2f5309a7fa3ee187c18a8930b96e89e4e31cf03e Mon Sep 17 00:00:00 2001 +From 1e1bf8ebcd3c18b05326cd7b26a471db804aeaeb Mon Sep 17 00:00:00 2001 From: Andrew Deason <adeason@sinenomine.net> Date: Tue, 24 Jul 2018 23:22:01 -0500 -Subject: [PATCH 02/29] LINUX: Minor osi_vfsop.c cleanup +Subject: [PATCH 02/32] LINUX: Minor osi_vfsop.c cleanup - Fix the formatting on afs_mount/afs_get_sb definitions @@ -14,6 +14,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit fa15fbda0aa0c3810695d9b867d3258b60e76b7c) Change-Id: I8a32475bf2ddb9c7206aef679947021925697c5a +Reviewed-on: https://gerrit.openafs.org/15680 +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Tested-by: Benjamin Kaduk <kaduk@mit.edu> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_vfsops.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) @@ -76,5 +81,5 @@ index b85ab3fdf..bb49a5ce2 100644 afs_statfs(struct dentry *dentry, struct kstatfs *statp) #else -- -2.44.0 +2.45.1 diff --git a/0003-afs-Remove-SRXAFSCB_GetDE.patch b/0003-afs-Remove-SRXAFSCB_GetDE.patch index 873bc45ee037..c719ac050bdd 100644 --- a/0003-afs-Remove-SRXAFSCB_GetDE.patch +++ b/0003-afs-Remove-SRXAFSCB_GetDE.patch @@ -1,7 +1,7 @@ -From fb336c461e9c212d450ce5e00890e8bbb2d9a4f7 Mon Sep 17 00:00:00 2001 +From 9f052c137d1184a783c8ac3182c3544b275484f5 Mon Sep 17 00:00:00 2001 From: Andrew Deason <adeason@sinenomine.net> Date: Sat, 9 Jan 2021 12:50:03 -0600 -Subject: [PATCH 03/29] afs: Remove SRXAFSCB_GetDE +Subject: [PATCH 03/32] afs: Remove SRXAFSCB_GetDE The GetDE RPC has been commented out from afscbint.xg effectively since it was introduced, but we still define the SRXAFSCB_GetDE server @@ -24,6 +24,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 444a971edc47c34efbefed6e332ee6e843ae072b) Change-Id: I83846d79ce3143571923cb6023075620091f093d +Reviewed-on: https://gerrit.openafs.org/15681 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_callback.c | 11 ----------- 1 file changed, 11 deletions(-) @@ -48,5 +53,5 @@ index e7d8ab5d4..22edefb3f 100644 - -} /*SRXAFSCB_GetDE*/ -- -2.44.0 +2.45.1 diff --git a/0004-afs-remove-dead-ICL-fstrace-code.patch b/0004-afs-remove-dead-ICL-fstrace-code.patch index f6e079895fb1..f7eb49b73218 100644 --- a/0004-afs-remove-dead-ICL-fstrace-code.patch +++ b/0004-afs-remove-dead-ICL-fstrace-code.patch @@ -1,7 +1,7 @@ -From 7d45e9f76541e2d0b57984b9ba272a86bbd9791b Mon Sep 17 00:00:00 2001 +From 05ac6149f2f7998b6110c403d26757151b8e8ffe Mon Sep 17 00:00:00 2001 From: Mark Vitale <mvitale@sinenomine.net> Date: Thu, 11 Mar 2021 15:36:54 -0500 -Subject: [PATCH 04/29] afs: remove dead ICL (fstrace) code +Subject: [PATCH 04/32] afs: remove dead ICL (fstrace) code The ICL code (afs/afs_icl.c) which supports fstrace includes a number of functions that have been dead code since the original IBM code import. @@ -16,6 +16,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit ba58d9912cff07a6f2af7275017cf70115f1a88d) Change-Id: Ic0a6d5dac200e7e130fa8df66005bdaf291cf088 +Reviewed-on: https://gerrit.openafs.org/15682 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_icl.c | 147 --------------------------------------- src/afs/afs_prototypes.h | 19 ----- @@ -261,5 +266,5 @@ index e9a655e65..ed43635aa 100644 extern int afs_icl_SetHold(struct afs_icl_set *setp); extern int afs_icl_ZapSet(struct afs_icl_set *setp); -- -2.44.0 +2.45.1 diff --git a/0005-cf-Add-function-prototypes-for-linux-conftest.patch b/0005-cf-Add-function-prototypes-for-linux-conftest.patch index 75f365179b57..78eb822f0242 100644 --- a/0005-cf-Add-function-prototypes-for-linux-conftest.patch +++ b/0005-cf-Add-function-prototypes-for-linux-conftest.patch @@ -1,7 +1,7 @@ -From 55e30ae5560063b8141b3696b0c67f355dcefc54 Mon Sep 17 00:00:00 2001 +From ef7b8c578790d84c89f09c3236f1718725770e75 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Wed, 7 Feb 2024 14:51:23 -0700 -Subject: [PATCH 05/29] cf: Add function prototypes for linux conftest +Subject: [PATCH 05/32] cf: Add function prototypes for linux conftest The Linux 6.8 commit: 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f) @@ -27,6 +27,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 1440843b80e28db908bd8c264b8adbfb2c95b4d9) Change-Id: I38acb7b0cb08dec8e9bca5f3792fbf981884a74c +Reviewed-on: https://gerrit.openafs.org/15683 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/cf/linux-test1.m4 | 4 ++-- src/cf/linux-test4.m4 | 16 ++++++++-------- @@ -104,5 +109,5 @@ index 3596b6aad..7889c904a 100644 [IOP_CREATE_TAKES_UMODE_T], [define if inode.i_op->create takes a umode_t argument], -- -2.44.0 +2.45.1 diff --git a/0007-afs-Remove-afs_MemExtendEntry.patch b/0006-afs-Remove-afs_MemExtendEntry.patch index 2936ed094d7c..1c9a38f2ff7f 100644 --- a/0007-afs-Remove-afs_MemExtendEntry.patch +++ b/0006-afs-Remove-afs_MemExtendEntry.patch @@ -1,7 +1,7 @@ -From ca64798e8baf3378e3cc7a619b9e02a715a39ddc Mon Sep 17 00:00:00 2001 +From 4881af8e3cf3f7d09670ba4b5bb9b644a329530d Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 09:09:39 -0700 -Subject: [PATCH 07/29] afs: Remove afs_MemExtendEntry() +Subject: [PATCH 06/32] afs: Remove afs_MemExtendEntry() The function afs_MemExtendEntry() is not referenced anywhere within the source tree. @@ -28,6 +28,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit eab2a4ae758876bb7547d289f936f9cfc4227cf5) Change-Id: I37f241a6df33ab15249c6708d5ca820353c8b413 +Reviewed-on: https://gerrit.openafs.org/15685 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_memcache.c | 10 ---------- 1 file changed, 10 deletions(-) @@ -54,5 +59,5 @@ index 936cbe927..419083da2 100644 shutdown_memcache(void) { -- -2.44.0 +2.45.1 diff --git a/0008-afs-Remove-afs_osi_UnmaskUserLoop.patch b/0007-afs-Remove-afs_osi_UnmaskUserLoop.patch index 635f1ac7aadf..9de6cbf2f3f7 100644 --- a/0008-afs-Remove-afs_osi_UnmaskUserLoop.patch +++ b/0007-afs-Remove-afs_osi_UnmaskUserLoop.patch @@ -1,7 +1,7 @@ -From fb3a69c84ced6db6aa9aeb506bfb64ac18745a92 Mon Sep 17 00:00:00 2001 +From cc8053e86eef75bff308e7606f2618e9fdc4ec5d Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 09:13:27 -0700 -Subject: [PATCH 08/29] afs: Remove afs_osi_UnmaskUserLoop() +Subject: [PATCH 07/32] afs: Remove afs_osi_UnmaskUserLoop() The function afs_osi_UnmaskUserLoop() is not referenced anywhere within the source tree. @@ -26,6 +26,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 587cfce29cb4e014e5b8d96e0433c5e7d2c6729a) Change-Id: I0fe91a41e8f00773cb1d5976a8c3e39e4415f6bc +Reviewed-on: https://gerrit.openafs.org/15686 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_osi.c | 8 -------- 1 file changed, 8 deletions(-) @@ -50,5 +55,5 @@ index 18732d1a3..6f54c63c7 100644 void afs_osi_RxkRegister(void) -- -2.44.0 +2.45.1 diff --git a/0009-afs-Remove-dummy_PSetAcl.patch b/0008-afs-Remove-dummy_PSetAcl.patch index 647734c08ca2..c0ca6af83270 100644 --- a/0009-afs-Remove-dummy_PSetAcl.patch +++ b/0008-afs-Remove-dummy_PSetAcl.patch @@ -1,7 +1,7 @@ -From bc446c8fa62df6ce9ab4be50b8b1da54901863ad Mon Sep 17 00:00:00 2001 +From bd2828f1ab4c88b95a5d075e29a942922aa86dba Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 09:28:02 -0700 -Subject: [PATCH 09/29] afs: Remove dummy_PSetAcl() +Subject: [PATCH 08/32] afs: Remove dummy_PSetAcl() The function dummy_PSetAcl() is not referenced anywhere within the source tree. @@ -25,6 +25,11 @@ Tested-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 05ca98687d882c72915e91430e29a4f2a36c502c) Change-Id: Ie4420a365e07d2d8564530e004df75330e86bea5 +Reviewed-on: https://gerrit.openafs.org/15687 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_pioctl.c | 6 ------ 1 file changed, 6 deletions(-) @@ -47,5 +52,5 @@ index 9182a4b52..7ddb5add2 100644 { afs_int32 code; -- -2.44.0 +2.45.1 diff --git a/0006-afs-Remove-DFlushDCache.patch b/0009-afs-Remove-DFlushDCache.patch index b49f122e542a..16b03b5b2f9b 100644 --- a/0006-afs-Remove-DFlushDCache.patch +++ b/0009-afs-Remove-DFlushDCache.patch @@ -1,7 +1,7 @@ -From 177c84e86d65936636a4db5548f4424f04a1b33c Mon Sep 17 00:00:00 2001 +From bb7eaafb2e87d313eeb0a7bedebe2aa7a797b005 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 08:56:31 -0700 -Subject: [PATCH 06/29] afs: Remove DFlushDCache() +Subject: [PATCH 09/32] afs: Remove DFlushDCache() The function DFlushDcache() is not referenced anywhere within the source tree. @@ -27,6 +27,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 432ac5810e51bb5bb2cf1df0bfebc64d1c4d7a39) Change-Id: Ib8ab79c76c633632215e02235f47fdb1d744e721 +Reviewed-on: https://gerrit.openafs.org/15684 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_buffer.c | 25 ------------------------- 1 file changed, 25 deletions(-) @@ -68,5 +73,5 @@ index 5552d1c21..9538c6806 100644 DFlush(void) { -- -2.44.0 +2.45.1 diff --git a/0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch b/0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch index 765c8256492b..fd049d5dc441 100644 --- a/0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch +++ b/0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch @@ -1,7 +1,7 @@ -From 2501655e438f65523f5250b26a2074bdbd56bc16 Mon Sep 17 00:00:00 2001 +From be8001f1d64a2d9da4fdaeff59fdc40e205d4526 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Thu, 8 Feb 2024 12:22:13 -0700 -Subject: [PATCH 10/29] afs: Remove SRXAFSCB_FetchData/StoreData +Subject: [PATCH 10/32] afs: Remove SRXAFSCB_FetchData/StoreData Commit 'client-64bit-file-size-support-20011031' (971b18bc42) introduced the RPC functions SRXAFSCB_FetchData() and SRXAFSCB_StoreData with RPC @@ -28,6 +28,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 379f7fc51d411990189ec28e48c91edc87d76120) Change-Id: I1a3539227d22e6df89d78245634dfeb14943035a +Reviewed-on: https://gerrit.openafs.org/15688 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_callback.c | 65 ---------------------------------------- src/afs/afs_prototypes.h | 7 ----- @@ -128,5 +133,5 @@ index ed43635aa..208bd0338 100644 /* afs_cbqueue.c */ extern afs_rwlock_t afs_xcbhash; -- -2.44.0 +2.45.1 diff --git a/0011-afs-Remove-afs_DbgDisconFiles.patch b/0011-afs-Remove-afs_DbgDisconFiles.patch index ca60249b0327..ec47b1702db5 100644 --- a/0011-afs-Remove-afs_DbgDisconFiles.patch +++ b/0011-afs-Remove-afs_DbgDisconFiles.patch @@ -1,7 +1,7 @@ -From 3479efd57fb4ca488061301f2770905fd5c1d90f Mon Sep 17 00:00:00 2001 +From 73844a4939a7b8198bf11d4dcbce9e28b621bd11 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Thu, 8 Feb 2024 16:10:57 -0700 -Subject: [PATCH 11/29] afs: Remove afs_DbgDisconFiles() +Subject: [PATCH 11/32] afs: Remove afs_DbgDisconFiles() The function afs_DbgDisconFiles() is not referenced anywhere within the source tree. @@ -25,6 +25,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 32bb90047782f41df521bba5ab4aba8b4ed34203) Change-Id: I61d06515845dbb18a370f7856285596514242e99 +Reviewed-on: https://gerrit.openafs.org/15689 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_disconnected.c | 31 ------------------------------- 1 file changed, 31 deletions(-) @@ -72,5 +77,5 @@ index 3b8858539..1aaabd905 100644 * Generate a fake fid for a disconnected shadow dir. * Similar to afs_GenFakeFid, only that it uses the dhash -- -2.44.0 +2.45.1 diff --git a/0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch b/0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch index e203a16db82a..66c902faccb2 100644 --- a/0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch +++ b/0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch @@ -1,7 +1,7 @@ -From ae193277f1e2af7137e86ab5e96673c6d9fae217 Mon Sep 17 00:00:00 2001 +From 5d2c4a0a8ada4a87d7f39dc21dbce14b3b2a978f Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 15:52:57 -0700 -Subject: [PATCH 12/29] afs: Add declaration for RXAFS_ResidencyCmd() +Subject: [PATCH 12/32] afs: Add declaration for RXAFS_ResidencyCmd() The function RXAFS_ResidencyCmd() is 'manually' defined within the afsint.xg, so a prototype for the function is not defined. @@ -27,6 +27,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 1d6cfbc5f627abf3808aae97afb72662301483b5) Change-Id: I42d0868b83e119b0c3348a3af8aaf5961c040bb2 +Reviewed-on: https://gerrit.openafs.org/15690 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/fsint/afsint.xg | 1 + 1 file changed, 1 insertion(+) @@ -44,5 +49,5 @@ index 9fe4980c6..cdcd07a29 100644 %{ % return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs); -- -2.44.0 +2.45.1 diff --git a/0013-roken-Declare-ct_memcmp-in-hcrypto-kernel-roken.h.patch b/0013-roken-Declare-ct_memcmp-in-hcrypto-kernel-roken.h.patch index 40a1c0609fca..ea0dd7997396 100644 --- a/0013-roken-Declare-ct_memcmp-in-hcrypto-kernel-roken.h.patch +++ b/0013-roken-Declare-ct_memcmp-in-hcrypto-kernel-roken.h.patch @@ -1,7 +1,7 @@ -From e5d980ec4a4d41f965fcfe968a2cf00e0b99a3e1 Mon Sep 17 00:00:00 2001 +From 15357006d9e8e45ac0be9e0c7e87456ee3857d90 Mon Sep 17 00:00:00 2001 From: Andrew Deason <adeason@sinenomine.net> Date: Tue, 30 Jan 2024 20:44:48 -0600 -Subject: [PATCH 13/29] roken: Declare ct_memcmp in hcrypto kernel roken.h +Subject: [PATCH 13/32] roken: Declare ct_memcmp in hcrypto kernel roken.h Currently, we build roken's ct.c for our kernel module to provide ct_memcmp(). We declare a prototype for ct_memcmp() in krb5_locl.h, @@ -39,6 +39,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit be236069e9d26339ed5f9939965bca0dd3f8bf4e) Change-Id: I1112881938b0585263871f8f83d63b8909b12f0d +Reviewed-on: https://gerrit.openafs.org/15691 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/crypto/hcrypto/kernel/roken.h | 17 +++++++++++++++++ src/crypto/rfc3961/krb5_locl.h | 6 +----- @@ -91,5 +96,5 @@ index eb279a95f..6e706737c 100644 #include "crypto.h" -- -2.44.0 +2.45.1 diff --git a/0014-Linux-6.8-Add-function-prototypes-for-krb5.patch b/0014-Linux-6.8-Add-function-prototypes-for-krb5.patch index b43c366dcd0d..4630ffb63324 100644 --- a/0014-Linux-6.8-Add-function-prototypes-for-krb5.patch +++ b/0014-Linux-6.8-Add-function-prototypes-for-krb5.patch @@ -1,7 +1,7 @@ -From e8e23ccf9d81e5c7df49d4e28441d7c986e47886 Mon Sep 17 00:00:00 2001 +From b1c93f13870e24795b857cb483320871703d00e8 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Wed, 7 Feb 2024 15:25:10 -0700 -Subject: [PATCH 14/29] Linux 6.8: Add function prototypes for krb5 +Subject: [PATCH 14/32] Linux 6.8: Add function prototypes for krb5 The external files for heimdal/krb5 do not provide function prototypes in a header file that is used when building files that we use from @@ -30,6 +30,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 612927dd1dd44bbd08eda790de12b24213583156) Change-Id: Iaae28186a24c3c5ca4407de9563c8cfed9644921 +Reviewed-on: https://gerrit.openafs.org/15692 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/crypto/rfc3961/krb5_locl.h | 132 +++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) @@ -178,5 +183,5 @@ index 6e706737c..04292eefa 100644 struct _krb5_checksum_type * _krb5_find_checksum (krb5_cksumtype); -- -2.44.0 +2.45.1 diff --git a/0015-afs-Declare-init_hckernel_mutex.patch b/0015-afs-Declare-init_hckernel_mutex.patch index db31b6cc0a48..3b0ed0011330 100644 --- a/0015-afs-Declare-init_hckernel_mutex.patch +++ b/0015-afs-Declare-init_hckernel_mutex.patch @@ -1,7 +1,7 @@ -From c3f5353b03396d89b2a1595ca3a38d4312cb62cf Mon Sep 17 00:00:00 2001 +From 25e17fe7196fd4a46e6a9408d135812ca53ddf80 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Thu, 8 Feb 2024 11:50:16 -0700 -Subject: [PATCH 15/29] afs: Declare init_hckernel_mutex() +Subject: [PATCH 15/32] afs: Declare init_hckernel_mutex() The function init_hckernel_mutex() (in rand.c) is flagged due to a missing prototype when building against a Linux 6.8 kernel (which sets @@ -23,6 +23,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit ccc2af429710104793fb4659b10697cceab182b3) Change-Id: Ic5eb4584a980657a01a1cb4411c0c1f03b1f3560 +Reviewed-on: https://gerrit.openafs.org/15693 +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Tested-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_osi.c | 5 ----- src/afs/afs_osi.h | 5 +++++ @@ -59,5 +64,5 @@ index 79c44a985..e3f0e0ccb 100644 + #endif /* _AFS_OSI_ */ -- -2.44.0 +2.45.1 diff --git a/0016-afs-Add-includes-to-pick-up-function-prototypes.patch b/0016-afs-Add-includes-to-pick-up-function-prototypes.patch index f8cce55804f2..8d0f09a3ebba 100644 --- a/0016-afs-Add-includes-to-pick-up-function-prototypes.patch +++ b/0016-afs-Add-includes-to-pick-up-function-prototypes.patch @@ -1,7 +1,7 @@ -From 5e3f30520ee000690b7097bdea7d3f35fe0fcfd3 Mon Sep 17 00:00:00 2001 +From 8b516820abf1edace60276152e9ed18a0b30fc13 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Mon, 12 Feb 2024 08:25:47 -0700 -Subject: [PATCH 16/29] afs: Add includes to pick up function prototypes +Subject: [PATCH 16/32] afs: Add includes to pick up function prototypes The functions defined in LINUX/osi_crypto.c, osi_pagecopy.c, osi_probe.c, and osi_syscall.c have function prototypes defined in @@ -28,6 +28,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 3683f15278e34e13d7272928eaf666f0acc4e1e9) Change-Id: Iac704fc98d0d685358224049f383d68aa7a105f8 +Reviewed-on: https://gerrit.openafs.org/15694 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_crypto.c | 3 +++ src/afs/LINUX/osi_pagecopy.c | 1 + @@ -116,5 +121,5 @@ index 836491c29..5e9e5194a 100644 #include <linux/mm.h> -- -2.44.0 +2.45.1 diff --git a/0017-afs-Move-function-prototypes-into-headers.patch b/0017-afs-Move-function-prototypes-into-headers.patch index 81d2767af097..df94fa2f9a3b 100644 --- a/0017-afs-Move-function-prototypes-into-headers.patch +++ b/0017-afs-Move-function-prototypes-into-headers.patch @@ -1,7 +1,7 @@ -From 1505e0d19cba9b66d0e357f6eafdde15f638eb2e Mon Sep 17 00:00:00 2001 +From c04c2d07226583846c3949a4855c7db4316438da Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Thu, 15 Feb 2024 09:00:05 -0700 -Subject: [PATCH 17/29] afs: Move function prototypes into headers +Subject: [PATCH 17/32] afs: Move function prototypes into headers Several .c files contain external function prototypes, while the implementing files do not have these prototypes. @@ -32,6 +32,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 85781d7e83ae4501d8ab267bf55ef63f90f63101) Change-Id: I74333e99e08af88bebdcbff4767d79397acac358 +Reviewed-on: https://gerrit.openafs.org/15695 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_ioctl.c | 3 --- src/afs/LINUX/osi_syscall.c | 3 --- @@ -140,5 +145,5 @@ index 208bd0338..9b3b1afec 100644 extern int afs_readdir(OSI_VC_DECL(avc), struct uio *auio, afs_ucred_t *acred, int *eofp); -- -2.44.0 +2.45.1 diff --git a/0018-afs-Add-afs_xioctl-prototyes-to-afs_prototypes.h.patch b/0018-afs-Add-afs_xioctl-prototyes-to-afs_prototypes.h.patch index e6849d8433bf..124949aeded8 100644 --- a/0018-afs-Add-afs_xioctl-prototyes-to-afs_prototypes.h.patch +++ b/0018-afs-Add-afs_xioctl-prototyes-to-afs_prototypes.h.patch @@ -1,7 +1,7 @@ -From 3c7e96e5c163597ec65d238d3357881346ab2dd3 Mon Sep 17 00:00:00 2001 +From 96932160fa8ef1cf4422e9e1d1ca2a449f8ffe93 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Mon, 12 Feb 2024 08:59:32 -0700 -Subject: [PATCH 18/29] afs: Add afs_xioctl prototyes to afs_prototypes.h +Subject: [PATCH 18/32] afs: Add afs_xioctl prototyes to afs_prototypes.h Several .c files have external function prototypes for the afs_xioctl function, while the implementing files do not have the prototype. @@ -29,6 +29,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 575d986aa6c18ac27ea42fb66ae8b8cb0e27fe6c) Change-Id: If746111fdcf6a00459f524711623d322d5fc7942 +Reviewed-on: https://gerrit.openafs.org/15696 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/FBSD/osi_vfsops.c | 1 - src/afs/HPUX/osi_vfsops.c | 2 +- @@ -158,5 +163,5 @@ index 9b3b1afec..d7894dd67 100644 /* afs_segments.c */ extern int afs_StoreAllSegments(struct vcache *avc, -- -2.44.0 +2.45.1 diff --git a/0019-afs-Remove-SRXAFSCB-protos-from-afs_prototypes.h.patch b/0019-afs-Remove-SRXAFSCB-protos-from-afs_prototypes.h.patch index ef297f01673e..14816e5d5618 100644 --- a/0019-afs-Remove-SRXAFSCB-protos-from-afs_prototypes.h.patch +++ b/0019-afs-Remove-SRXAFSCB-protos-from-afs_prototypes.h.patch @@ -1,7 +1,7 @@ -From 93669f535752e759b820a21883a6a8c6fba4e73e Mon Sep 17 00:00:00 2001 +From 53752b01bc734f4bd5f5da24ac116c7fcb2ac07f Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Mon, 12 Feb 2024 09:43:29 -0700 -Subject: [PATCH 19/29] afs: Remove SRXAFSCB* protos from afs_prototypes.h +Subject: [PATCH 19/32] afs: Remove SRXAFSCB* protos from afs_prototypes.h The prototypes for the afscbint RPC functions (SRXAFSCB_*) implemented in afs_callback.c are defined in 2 locations, afs_protypes.h and @@ -33,6 +33,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit fae4003b403420d0b548920c7837a2d2b6e432ae) Change-Id: I7d435455fc60cc10200ee91d0d76534367ab5883 +Reviewed-on: https://gerrit.openafs.org/15697 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_callback.c | 2 ++ src/afs/afs_prototypes.h | 37 ------------------------------------- @@ -102,5 +107,5 @@ index d7894dd67..b9811f892 100644 /* afs_cbqueue.c */ extern afs_rwlock_t afs_xcbhash; -- -2.44.0 +2.45.1 diff --git a/0020-rx-Add-function-prototypes-to-rx_prototypes.h.patch b/0020-rx-Add-function-prototypes-to-rx_prototypes.h.patch index 1d2b2f656e12..76e8226cf7d4 100644 --- a/0020-rx-Add-function-prototypes-to-rx_prototypes.h.patch +++ b/0020-rx-Add-function-prototypes-to-rx_prototypes.h.patch @@ -1,7 +1,7 @@ -From 46608e2f629b8742d31752cc0b021420231e6f45 Mon Sep 17 00:00:00 2001 +From 09f9660fbbb4f3c20ba9f2283169818372c3f474 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Wed, 7 Feb 2024 19:34:29 -0700 -Subject: [PATCH 20/29] rx: Add function prototypes to rx_prototypes.h +Subject: [PATCH 20/32] rx: Add function prototypes to rx_prototypes.h The prototype for rxk_NewSocketHost() is not in a header file, but is defined in the referencing .c file. The ARCH/rx_knet.c files that @@ -37,6 +37,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 8528c36b96fe2935f42188caabf4feed0d5dbcbd) Change-Id: Ieae8be7f89f5c675c6580d8cfb02ea77ce4088f7 +Reviewed-on: https://gerrit.openafs.org/15698 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/rx/rx_kcommon.c | 1 - src/rx/rx_prototypes.h | 5 ++++- @@ -80,5 +85,5 @@ index 87a1049f7..6e1ae566c 100644 # ifdef UKERNEL extern void afs_rxevent_daemon(void); -- -2.44.0 +2.45.1 diff --git a/0021-afs-fix-ops-variable-may-be-used-uninitialized.patch b/0021-afs-fix-ops-variable-may-be-used-uninitialized.patch index e62db4e1379c..8aaac72c3e3c 100644 --- a/0021-afs-fix-ops-variable-may-be-used-uninitialized.patch +++ b/0021-afs-fix-ops-variable-may-be-used-uninitialized.patch @@ -1,7 +1,7 @@ -From 216078c99ab6d65ba607d5d7522fdb154048ea59 Mon Sep 17 00:00:00 2001 +From 90b8dcff36e9b03ec01550ad1a070a0ab7db8c46 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 9 Feb 2024 09:01:33 -0700 -Subject: [PATCH 21/29] afs: fix 'ops' variable may be used uninitialized +Subject: [PATCH 21/32] afs: fix 'ops' variable may be used uninitialized When the function rxfs_storeInit() has the static attribute, gcc flags the variable 'ops' as possibly uninitialized. @@ -49,6 +49,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 36e4c02ff27b9d66755b9544778896b9b1e5c391) Change-Id: I9d8a07e576c6bf889f8f182c6fc0d34dc997c004 +Reviewed-on: https://gerrit.openafs.org/15699 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/afs_fetchstore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -76,5 +81,5 @@ index 7b35b8f7f..63b370dae 100644 #ifdef AFS_64BIT_CLIENT restart: -- -2.44.0 +2.45.1 diff --git a/0022-afs-Add-static-attribute-to-internal-functions.patch b/0022-afs-Add-static-attribute-to-internal-functions.patch index f6426e79cb4b..92ddfb24f264 100644 --- a/0022-afs-Add-static-attribute-to-internal-functions.patch +++ b/0022-afs-Add-static-attribute-to-internal-functions.patch @@ -1,7 +1,7 @@ -From d82082f27ba7308c41c7e2ef7585ed33d384bad7 Mon Sep 17 00:00:00 2001 +From 195f154aaf2d8aff1f6debdb47c0db8f07cb5c5e Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Thu, 29 Feb 2024 17:53:31 -0700 -Subject: [PATCH 22/29] afs: Add static attribute to internal functions +Subject: [PATCH 22/32] afs: Add static attribute to internal functions When building against a Linux 6.8 kernel, functions that are missing prototypes or declarations are flagged. @@ -25,6 +25,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit efee796f28b53bf3ffc03186f81790c36c23c94c) Change-Id: I0d923a65731f825d6c190056b0ccc3d362236706 +Reviewed-on: https://gerrit.openafs.org/15700 +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Tested-by: Benjamin Kaduk <kaduk@mit.edu> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_file.c | 2 +- src/afs/LINUX/osi_module.c | 4 ++-- @@ -483,5 +488,5 @@ index e72b45ea4..f500b65a3 100644 { /* -- -2.44.0 +2.45.1 diff --git a/0023-rx-Add-static-attribute-to-internal-functions.patch b/0023-rx-Add-static-attribute-to-internal-functions.patch index 4b4736ce91c5..7145f3be39f8 100644 --- a/0023-rx-Add-static-attribute-to-internal-functions.patch +++ b/0023-rx-Add-static-attribute-to-internal-functions.patch @@ -1,7 +1,7 @@ -From 5c40a30514681080a304c9a284e991371ad33689 Mon Sep 17 00:00:00 2001 +From 4c92936aefede187e57a9a433c0c192af2fc5e84 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Fri, 12 Jan 2024 15:30:23 -0700 -Subject: [PATCH 23/29] rx: Add static attribute to internal functions +Subject: [PATCH 23/32] rx: Add static attribute to internal functions When building against a Linux 6.8 kernel, functions that are missing prototypes or declarations are flagged. @@ -27,6 +27,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 55adceba2d561ec4e89235de329782a68e603a11) Change-Id: I1b2a6e1c07bd4b75b7b83e177f17865eb903e488 +Reviewed-on: https://gerrit.openafs.org/15701 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/rx/rx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) @@ -72,5 +77,5 @@ index aaec60907..d6c52c369 100644 { rpc_stat->invocations = 0; -- -2.44.0 +2.45.1 diff --git a/0024-rxgen-Declare-generated-PKG_TranslateOpCode.patch b/0024-rxgen-Declare-generated-PKG_TranslateOpCode.patch index ed16d683fa47..5fa28d27b4cd 100644 --- a/0024-rxgen-Declare-generated-PKG_TranslateOpCode.patch +++ b/0024-rxgen-Declare-generated-PKG_TranslateOpCode.patch @@ -1,7 +1,7 @@ -From 8b9831622af6da269d12668e1b50816872dafcc7 Mon Sep 17 00:00:00 2001 +From 57e0192a690942c2a0f4f1f685cfadf2106b763a Mon Sep 17 00:00:00 2001 From: Andrew Deason <adeason@sinenomine.net> Date: Tue, 7 Dec 2021 15:43:35 -0600 -Subject: [PATCH 24/29] rxgen: Declare generated PKG_TranslateOpCode() +Subject: [PATCH 24/32] rxgen: Declare generated PKG_TranslateOpCode() Ever since commit 5c77a6ca (rxgen: add *TranslateOpcode functions to XDR code), rxgen generates a PKG_TranslateOpCode function in the @@ -21,6 +21,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 9b2c27fc6d299cb0b23eca3e8cb25b7e0c41b11a) Change-Id: I2479ff7f6579769b3319b2939ffde60fe570c880 +Reviewed-on: https://gerrit.openafs.org/15702 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/rxgen/rpc_parse.c | 4 ++++ 1 file changed, 4 insertions(+) @@ -48,5 +53,5 @@ index 768e42f3b..59854f4d5 100644 void -- -2.44.0 +2.45.1 diff --git a/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch b/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch index e74a7bfb8214..ddff4708038f 100644 --- a/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch +++ b/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch @@ -1,7 +1,7 @@ -From 53c988023e7e6087026d6ed795ed4a13ea39cb94 Mon Sep 17 00:00:00 2001 +From fef1fc6f740c6f7395cf51ce99ed296652579c7d Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Tue, 5 Mar 2024 07:40:08 -0700 -Subject: [PATCH 25/29] rxgen: Declare generated PKG_OpCodeStats() +Subject: [PATCH 25/32] rxgen: Declare generated PKG_OpCodeStats() The function {PKG}_OpCodeStats() is generated by rxgen, however a prototype for the function is not generated. @@ -31,6 +31,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 26bb4d143b31ba027cf2721ac731df67a174c43b) Change-Id: I9072d22d142b5b7a2f59b0cfc4026066ef1d9501 +Reviewed-on: https://gerrit.openafs.org/15703 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/rxgen/rpc_parse.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) @@ -66,5 +71,5 @@ index 59854f4d5..e648a6600 100644 void -- -2.44.0 +2.45.1 diff --git a/0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch b/0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch index e15bc3b11325..14406373030e 100644 --- a/0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch +++ b/0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch @@ -1,7 +1,7 @@ -From 9befccd11d338dfc7220a3ae3695634cefd2c359 Mon Sep 17 00:00:00 2001 +From 18a2a932df9c1b6b3c7513a6c161d4259f052ca9 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Mon, 12 Feb 2024 12:31:30 -0700 -Subject: [PATCH 26/29] Linux 6.8: use hlist iteration for dentry children +Subject: [PATCH 26/32] Linux 6.8: use hlist iteration for dentry children Linux 6.8 commit 'dentry: switch the lists of children to hlist' (da549bdd15) replaces the dentry lists d_subdirs/d_child with the hlist @@ -20,6 +20,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 8e0bbe6a07523dd2e7efb3c9d1b4ad9e19fc9bb7) Change-Id: Ief4c334c4ef3e54822e068dcdf654541e86b9176 +Reviewed-on: https://gerrit.openafs.org/15704 +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Tested-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_vcache.c | 10 +++++++++- src/cf/linux-kernel-struct.m4 | 3 +++ @@ -68,5 +73,5 @@ index 2824ec198..5cd346fb5 100644 AC_CHECK_LINUX_STRUCT([group_info], [gid], [cred.h]) AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h]) -- -2.44.0 +2.45.1 diff --git a/0027-Linux-6.8-Remove-ctl_table-sentinels.patch b/0027-Linux-6.8-Remove-ctl_table-sentinels.patch index 24bbd0b973c6..d5e5b84a9d9d 100644 --- a/0027-Linux-6.8-Remove-ctl_table-sentinels.patch +++ b/0027-Linux-6.8-Remove-ctl_table-sentinels.patch @@ -1,7 +1,7 @@ -From f9f074e6f9a3114b1926a90bd7810bfa192f9886 Mon Sep 17 00:00:00 2001 +From 6333fae573f8a7b7656e9c1b05d445a37b951b88 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Tue, 5 Mar 2024 08:37:47 -0700 -Subject: [PATCH 27/29] Linux 6.8: Remove ctl_table sentinels +Subject: [PATCH 27/32] Linux 6.8: Remove ctl_table sentinels The Linux 6.8 commit 'sysctl: Remove the now superfluous sentinel elements from ctl_table array' (c8a65501d3) was a clean up commit @@ -36,6 +36,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 35c8c1bf0b1cb48178f676ba5bcf16ad59c5a33b) Change-Id: I34cb7586003e10a6c7438d7205123d57af30585e +Reviewed-on: https://gerrit.openafs.org/15705 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_sysctl.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) @@ -82,5 +87,5 @@ index a0a039892..c1116fc79 100644 # endif int -- -2.44.0 +2.45.1 diff --git a/0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch b/0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch index 16b7091a1d7e..ddd678f96dc0 100644 --- a/0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch +++ b/0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch @@ -1,7 +1,7 @@ -From b6458796f2deef285fd0ad06480b5fc35cd8acb3 Mon Sep 17 00:00:00 2001 +From 7b4802efaf29ef76969c8b931a31e93dd4fbb000 Mon Sep 17 00:00:00 2001 From: Cheyenne Wills <cwills@sinenomine.net> Date: Mon, 11 Mar 2024 09:05:33 -0600 -Subject: [PATCH 28/29] Linux 6.8: Use roken's strlcpy() in kernel module +Subject: [PATCH 28/32] Linux 6.8: Use roken's strlcpy() in kernel module The Linux 6.8 commit 'string: Remove strlcpy()' (d26270061a) removed the the strlcpy function from the Linux kernel. The replacement function, @@ -35,6 +35,11 @@ Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 30b18c165752e6d0ce7b6daa6a90453f5e5e6d17) Change-Id: I8013623e8f735d15bb7d4ac84ed0867f12b77783 +Reviewed-on: https://gerrit.openafs.org/15706 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> --- src/afs/LINUX/osi_machdep.h | 1 + src/cf/linux-kernel-func.m4 | 11 +++++++++++ @@ -152,5 +157,5 @@ index 8744ab8b6..6e62c8c97 100644 AFS_OS_NFSOBJS = -- -2.44.0 +2.45.1 diff --git a/0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch b/0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch new file mode 100644 index 000000000000..085ffe4d033a --- /dev/null +++ b/0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch @@ -0,0 +1,91 @@ +From d1a42401fddc51bd2f16da39dfebe0f60fc670ad Mon Sep 17 00:00:00 2001 +From: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu, 29 Feb 2024 17:58:17 -0700 +Subject: [PATCH 29/32] Linux: Remove weak attribute for key_type_keyring + +The reference to the Linux symbol key_type_keyring uses a weak +attribute to assist in determining if the symbol is exported. This +method was introduced in commit: 'keyring-updated-20080310' (b7fb842b1c) +as a way to detect if the symbol was exported by the Linux kernel. A +later commit: 'linux-keyring-export-check-20090701' (4ca66112c2) +introduced an autoconf test that eliminated the need for using the weak +attribute, but the commit did not remove the attribute. + +On a Debian-12 system on ARM64 the use of the weak attribute in this +case causes an error when loading the kernel module: + "ERROR: could not insert 'openafs': Exec format error". +The error is due to the Linux module loader not supporting the +relocation entry type in the openafs kernel module for the +key_type_keyring. Further investigation showed that this problem could +occur with gcc-12 on a ARM64 system (see below for additional +information). + +The code in osi_groups.c uses a pointer, __key_type_keyring, to the +key_type_keyring. When this symbol is exported by the Linux kernel, the +loader would resolve the address and __key_type_keyring would contain +the address. If the key_type_keyring symbol was not exported, +__key_type_keyring would be set to NULL (due to the weak attribute +associated with key_type_keyring). + +Remove the weak attribute for key_type_keyring when the configure +test, introduced in the 4ca66112c2 commit, determines that the symbol +is exported (EXPORTED_KEY_TYPE_KEYRING is defined). When the symbol +isn't exported (pre Linux 2.6.22), just set the pointer, +__key_type_keyring to NULL. + +NOTE: + +The load error was reported on the openafs IRC channel by "clarkb" + +The problem of loading the openafs kernel module was also observed +on a NixOS system as well, and is described in the NixOS ticket + + https://github.com/NixOS/nixpkgs/issues/284501 + +A Debian-11 system did not have a problem loading the openafs kernel +module. Investigation of the differences between Debian-11 and Debian-12 +showed that the problem is due to a series of fixes in the toolchain +(in particular gcc-12) to address 'Cortex-A53 erratum #843419', which +deals with how the ARM64 ADRP instruction is used. With gcc-12, the +code generated uses a R_AARCH64_ADR_GOT for this particular case (which +isn't supported by the Linux kernel module loader). Gcc-11 created a +R_AARCH64_ABS64 relocation entry type for the symbol. + +Reviewed-on: https://gerrit.openafs.org/15668 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Mark Vitale <mvitale@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +(cherry picked from commit 2f260825b96b76556aba82fc364c841357a23a7d) + +Change-Id: Ifce08cb01f0b642ee9c2d90480b8a1766dfc52ff +Reviewed-on: https://gerrit.openafs.org/15728 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +--- + src/afs/LINUX/osi_groups.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/afs/LINUX/osi_groups.c b/src/afs/LINUX/osi_groups.c +index 87d149f56..901312d2a 100644 +--- a/src/afs/LINUX/osi_groups.c ++++ b/src/afs/LINUX/osi_groups.c +@@ -166,8 +166,11 @@ __setpag(cred_t **cr, afs_uint32 pagvalue, afs_uint32 *newpag, + } + + #ifdef LINUX_KEYRING_SUPPORT +-extern struct key_type key_type_keyring __attribute__((weak)); ++# if defined(EXPORTED_KEY_TYPE_KEYRING) + static struct key_type *__key_type_keyring = &key_type_keyring; ++# else ++static struct key_type *__key_type_keyring; ++# endif + + /* install_session_keyring returns negative error values */ + static int +-- +2.45.1 + diff --git a/0029-afs-Drop-GLOCK-for-various-Rx-calls.patch b/0029-afs-Drop-GLOCK-for-various-Rx-calls.patch deleted file mode 100644 index 02b30b80d7b2..000000000000 --- a/0029-afs-Drop-GLOCK-for-various-Rx-calls.patch +++ /dev/null @@ -1,362 +0,0 @@ -From 35c339ec6b648deb02f7598c02df07b0c2ad0021 Mon Sep 17 00:00:00 2001 -From: Andrew Deason <adeason@dson.org> -Date: Sun, 3 May 2020 10:33:28 -0500 -Subject: [PATCH 29/29] afs: Drop GLOCK for various Rx calls - -Most calls into Rx from libafs do so without the AFS_GLOCK, but a few -pieces of code still hold AFS_GLOCK while making some Rx calls. A few -calls into Rx also currently require AFS_GLOCK, but drop AFS_GLOCK -internally, which is somewhat confusing/inconsistent. Calling Rx -functions with AFS_GLOCK held can potentially cause locking/allocation -problems on various platforms, such as FreeBSD where we get WITNESS -warnings about acquiring sleepable Rx locks while holding the -non-sleepable AFS_GLOCK. - -Fix a variety of Rx calls from libafs to drop AFS_GLOCK before calling -into Rx. Specifically, this commit handles calls to rxi_GetIFInfo, -rx_InitHost, rx_StartServer, rx_ServerProc, rx_GetConnection, -rx_DestroyConnection/rx_PutConnection, and -rx_SetConnSecondsUntilNatPing. - -For calls made via afs_start_thread, adjust afs_start_thread to accept -a new argument that says whether to acquire AFS_GLOCK for the relevant -function or not. - -For a call to rx_InitHost inside afs_InitSetup, dropping GLOCK makes -it possible for another thread to also enter afs_InitSetup while we're -running, before afs_InitSetup_done is set. To prevent two threads from -running afs_InitSetup in parallel, introduce afs_InitSetup_running -(which is set while afs_InitSetup is running), and simply wait for it -to be cleared if it is set when we enter afs_InitSetup. - -This commit does not handle strictly all calls into Rx from libafs, -since many Rx calls don't do anything interesting besides set some -internal variables, and so AFS_GLOCK doesn't really matter for them, -and dropping/reacquiring it around those calls may have performance -impact. - -Reviewed-on: https://gerrit.openafs.org/14184 -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -(cherry picked from commit d5e1428a3bd4a7fbb4401cf17176474f0c1825d3) - - Conflicts: - src/afs/afs_call.c - context only due to not having commit: - 'Log binding ip address and port during startup' (02dede5d40) - -Change-Id: I0d14105d5dc8bfd4740c7a9adfc61c36f8a2318c ---- - src/afs/LINUX/osi_misc.c | 22 +++++++++++++++++++--- - src/afs/LINUX/osi_prototypes.h | 2 +- - src/afs/afs_call.c | 19 ++++++++++++++++++- - src/afs/afs_callback.c | 2 ++ - src/afs/afs_conn.c | 6 ++++++ - src/afs/afs_daemons.c | 14 ++++++++------ - src/afs/afs_init.c | 2 ++ - src/afs/afs_pag_call.c | 15 ++++++++++----- - src/rx/rx_kcommon.c | 10 ---------- - 9 files changed, 66 insertions(+), 26 deletions(-) - -diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c -index aa5d5fc93..be6984661 100644 ---- a/src/afs/LINUX/osi_misc.c -+++ b/src/afs/LINUX/osi_misc.c -@@ -155,7 +155,18 @@ int osi_abspath(char *aname, char *buf, int buflen, - - - /* This could use some work, and support on more platforms. */ --int afs_thread_wrapper(void *rock) -+static int -+afs_thread_wrapper(void *rock) -+{ -+ void (*proc)(void) = rock; -+ __module_get(THIS_MODULE); -+ (*proc)(); -+ module_put(THIS_MODULE); -+ return 0; -+} -+ -+static int -+afs_thread_wrapper_glock(void *rock) - { - void (*proc)(void) = rock; - __module_get(THIS_MODULE); -@@ -166,7 +177,12 @@ int afs_thread_wrapper(void *rock) - return 0; - } - --void afs_start_thread(void (*proc)(void), char *name) -+void -+afs_start_thread(void (*proc)(void), char *name, int needs_glock) - { -- kthread_run(afs_thread_wrapper, proc, "%s", name); -+ if (needs_glock) { -+ kthread_run(afs_thread_wrapper_glock, proc, "%s", name); -+ } else { -+ kthread_run(afs_thread_wrapper, proc, "%s", name); -+ } - } -diff --git a/src/afs/LINUX/osi_prototypes.h b/src/afs/LINUX/osi_prototypes.h -index 130b5660e..2ed054339 100644 ---- a/src/afs/LINUX/osi_prototypes.h -+++ b/src/afs/LINUX/osi_prototypes.h -@@ -50,7 +50,7 @@ extern int osi_lookupname(char *aname, uio_seg_t seg, int followlink, - struct dentry **dpp); - extern int osi_abspath(char *aname, char *buf, int buflen, - int followlink, char **pathp); --extern void afs_start_thread(void (*proc)(void), char *name); -+extern void afs_start_thread(void (*proc)(void), char *name, int needs_glock); - - /* osi_probe.c */ - extern void *osi_find_syscall_table(int which); -diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c -index 4ac63b187..7fb323c29 100644 ---- a/src/afs/afs_call.c -+++ b/src/afs/afs_call.c -@@ -104,11 +104,19 @@ extern afs_int32 afs_md5inum; - static int - afs_InitSetup(int preallocs) - { -+ static int afs_InitSetup_running; -+ - int code; - -+ while (afs_InitSetup_running) { -+ afs_osi_Sleep(&afs_InitSetup_running); -+ } -+ - if (afs_InitSetup_done) - return EAGAIN; - -+ afs_InitSetup_running = 1; -+ - #ifdef AFS_SUN510_ENV - /* Initialize a RW lock for the ifinfo global array */ - rw_init(&afsifinfo_lock, NULL, RW_DRIVER, NULL); -@@ -133,10 +141,12 @@ afs_InitSetup(int preallocs) - /* start RX */ - if(!afscall_set_rxpck_received) - rx_extraPackets = AFS_NRXPACKETS; /* smaller # of packets */ -+ AFS_GUNLOCK(); - code = rx_InitHost(rx_bindhost, htons(7001)); -+ AFS_GLOCK(); - if (code) { - afs_warn("AFS: RX failed to initialize %d).\n", code); -- return code; -+ goto done; - } - rx_SetRxDeadTime(afs_rx_deadtime); - /* resource init creates the services */ -@@ -145,6 +155,9 @@ afs_InitSetup(int preallocs) - afs_InitSetup_done = 1; - afs_osi_Wakeup(&afs_InitSetup_done); - -+ done: -+ afs_InitSetup_running = 0; -+ afs_osi_Wakeup(&afs_InitSetup_running); - return code; - } - -@@ -1703,7 +1716,9 @@ afs_shutdown(enum afs_shutdown_type cold_flag) - afs_warn("CB... "); - - afs_termState = AFSOP_STOP_RXCALLBACK; -+ AFS_GUNLOCK(); - rx_WakeupServerProcs(); -+ AFS_GLOCK(); - #ifdef AFS_AIX51_ENV - shutdown_rxkernel(); - #endif -@@ -1756,7 +1771,9 @@ afs_shutdown(enum afs_shutdown_type cold_flag) - afs_warn("NetIfPoller... "); - osi_StopNetIfPoller(); - #endif -+ AFS_GUNLOCK(); - rxi_FreeAllPackets(); -+ AFS_GLOCK(); - - afs_termState = AFSOP_STOP_COMPLETE; - -diff --git a/src/afs/afs_callback.c b/src/afs/afs_callback.c -index 1fe990edf..7cffef6ff 100644 ---- a/src/afs/afs_callback.c -+++ b/src/afs/afs_callback.c -@@ -985,7 +985,9 @@ afs_RXCallBackServer(void) - /* - * Donate this process to Rx. - */ -+ AFS_GUNLOCK(); - rx_ServerProc(NULL); -+ AFS_GLOCK(); - return (0); - - } /*afs_RXCallBackServer */ -diff --git a/src/afs/afs_conn.c b/src/afs/afs_conn.c -index 2a3a513b2..8728ce518 100644 ---- a/src/afs/afs_conn.c -+++ b/src/afs/afs_conn.c -@@ -532,7 +532,9 @@ afs_ConnBySA(struct srvAddr *sap, unsigned short aport, afs_int32 acell, - */ - if ((service != 52) && (sap->natping == NULL)) { - sap->natping = tc; -+ AFS_GUNLOCK(); - rx_SetConnSecondsUntilNatPing(tc->id, 20); -+ AFS_GLOCK(); - } - - tc->forceConnectFS = 0; /* apparently we're appropriately connected now */ -@@ -542,7 +544,9 @@ afs_ConnBySA(struct srvAddr *sap, unsigned short aport, afs_int32 acell, - } /* end of if (tc->forceConnectFS)*/ - - *rxconn = tc->id; -+ AFS_GUNLOCK(); - rx_GetConnection(*rxconn); -+ AFS_GLOCK(); - - ReleaseSharedLock(&afs_xconn); - return tc; -@@ -672,7 +676,9 @@ afs_PutConn(struct afs_conn *ac, struct rx_connection *rxconn, - (unsigned long)(uintptrsz)ac, (int)ac->refCount); - } - ac->parent->refCount--; -+ AFS_GUNLOCK(); - rx_PutConnection(rxconn); -+ AFS_GLOCK(); - } /*afs_PutConn */ - - -diff --git a/src/afs/afs_daemons.c b/src/afs/afs_daemons.c -index 1879772fb..632aa849b 100644 ---- a/src/afs/afs_daemons.c -+++ b/src/afs/afs_daemons.c -@@ -223,19 +223,21 @@ afs_Daemon(void) - } - } - if (last10MinCheck + 600 < now) { -+ int addrs_changed; - #ifdef AFS_USERSPACE_IP_ADDR - extern int rxi_GetcbiInfo(void); - #endif - afs_Trace1(afs_iclSetp, CM_TRACE_PROBEUP, ICL_TYPE_INT32, 600); - #ifdef AFS_USERSPACE_IP_ADDR -- if (rxi_GetcbiInfo()) { /* addresses changed from last time */ -- afs_FlushCBs(); -- } --#else /* AFS_USERSPACE_IP_ADDR */ -- if (rxi_GetIFInfo()) { /* addresses changed from last time */ -+ addrs_changed = rxi_GetcbiInfo(); -+#else -+ AFS_GUNLOCK(); -+ addrs_changed = rxi_GetIFInfo(); -+ AFS_GLOCK(); -+#endif -+ if (addrs_changed) { /* addresses changed from last time */ - afs_FlushCBs(); - } --#endif /* else AFS_USERSPACE_IP_ADDR */ - if (!afs_CheckServerDaemonStarted) - afs_CheckServers(0, NULL); - afs_GCUserData(); /* gc old conns */ -diff --git a/src/afs/afs_init.c b/src/afs/afs_init.c -index bdb791c1a..efa513256 100644 ---- a/src/afs/afs_init.c -+++ b/src/afs/afs_init.c -@@ -554,7 +554,9 @@ afs_ResourceInit(int preallocs) - afs_server = - rx_NewService(0, RX_STATS_SERVICE_ID, "rpcstats", &secobj, 1, - RXSTATS_ExecuteRequest); -+ AFS_GUNLOCK(); - rx_StartServer(0); -+ AFS_GLOCK(); - afs_osi_Wakeup(&afs_server); /* wakeup anyone waiting for it */ - return 0; - -diff --git a/src/afs/afs_pag_call.c b/src/afs/afs_pag_call.c -index 610cfb3a8..9b7a90631 100644 ---- a/src/afs/afs_pag_call.c -+++ b/src/afs/afs_pag_call.c -@@ -91,10 +91,13 @@ afspag_Init(afs_int32 nfs_server_addr) - afs_uuid_create(&afs_cb_interface.uuid); - - AFS_GLOCK(); -- - afs_InitStats(); -+ AFS_GUNLOCK(); -+ - rx_Init(htons(7001)); - -+ AFS_GLOCK(); -+ - AFS_STATCNT(afs_ResourceInit); - AFS_RWLOCK_INIT(&afs_xuser, "afs_xuser"); - AFS_RWLOCK_INIT(&afs_xpagcell, "afs_xpagcell"); -@@ -117,18 +120,20 @@ afspag_Init(afs_int32 nfs_server_addr) - 1, RXSTATS_ExecuteRequest); - pagcb_svc = rx_NewService(0, PAGCB_SERVICEID, "pagcb", &srv_secobj, - 1, PAGCB_ExecuteRequest); -+ AFS_GUNLOCK(); - rx_StartServer(0); -+ AFS_GLOCK(); - - clt_secobj = rxnull_NewClientSecurityObject(); - rmtsys_conn = rx_NewConnection(nfs_server_addr, htons(7009), - RMTSYS_SERVICEID, clt_secobj, 0); - - #ifdef RXK_LISTENER_ENV -- afs_start_thread(rxk_Listener, "Rx Listener"); -+ afs_start_thread(rxk_Listener, "Rx Listener", 1); - #endif -- afs_start_thread((void *)(void *)rx_ServerProc, "Rx Server Thread"); -- afs_start_thread(afs_rxevent_daemon, "Rx Event Daemon"); -- afs_start_thread(afs_Daemon, "AFS PAG Daemon"); -+ afs_start_thread((void *)(void *)rx_ServerProc, "Rx Server Thread", 0); -+ afs_start_thread(afs_rxevent_daemon, "Rx Event Daemon", 1); -+ afs_start_thread(afs_Daemon, "AFS PAG Daemon", 1); - - afs_icl_InitLogs(); - -diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c -index c90df3d36..239cf1607 100644 ---- a/src/rx/rx_kcommon.c -+++ b/src/rx/rx_kcommon.c -@@ -267,13 +267,7 @@ rx_ServerProc(void *unused) - threadID = rxi_availProcs++; - MUTEX_EXIT(&rx_quota_mutex); - --# ifdef RX_ENABLE_LOCKS -- AFS_GUNLOCK(); --# endif /* RX_ENABLE_LOCKS */ - rxi_ServerProc(threadID, NULL, NULL); --# ifdef RX_ENABLE_LOCKS -- AFS_GLOCK(); --# endif /* RX_ENABLE_LOCKS */ - - return NULL; - } -@@ -856,8 +850,6 @@ rxk_NewSocketHost(afs_uint32 ahost, short aport) - # if (defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)) && defined(KERNEL_FUNNEL) - thread_funnel_switch(KERNEL_FUNNEL, NETWORK_FUNNEL); - # endif -- AFS_ASSERT_GLOCK(); -- AFS_GUNLOCK(); - # if defined(AFS_HPUX102_ENV) - # if defined(AFS_HPUX110_ENV) - /* we need a file associated with the socket so sosend in NetSend -@@ -997,14 +989,12 @@ rxk_NewSocketHost(afs_uint32 ahost, short aport) - # endif /* else defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV) */ - # endif /* else AFS_HPUX110_ENV */ - -- AFS_GLOCK(); - # if defined(AFS_DARWIN_ENV) && defined(KERNEL_FUNNEL) - thread_funnel_switch(NETWORK_FUNNEL, KERNEL_FUNNEL); - # endif - return (osi_socket *)newSocket; - - bad: -- AFS_GLOCK(); - # if defined(AFS_DARWIN_ENV) && defined(KERNEL_FUNNEL) - thread_funnel_switch(NETWORK_FUNNEL, KERNEL_FUNNEL); - # endif --- -2.44.0 - diff --git a/0030-Linux-Define-afs_thread_wrapper-as-static.patch b/0030-Linux-Define-afs_thread_wrapper-as-static.patch new file mode 100644 index 000000000000..9dce78058f05 --- /dev/null +++ b/0030-Linux-Define-afs_thread_wrapper-as-static.patch @@ -0,0 +1,58 @@ +From dfb6b53a6802e90f6bc2cd3cd39da467ce8e4488 Mon Sep 17 00:00:00 2001 +From: Cheyenne Wills <cwills@sinenomine.net> +Date: Wed, 3 Apr 2024 11:36:54 -0600 +Subject: [PATCH 30/32] Linux: Define afs_thread_wrapper() as static + +When building against a Linux 6.8 kernel, functions that are missing +prototypes or declarations are flagged. + +We can add the static attribute to functions that are not referenced +outside of the file that implements them to avoid having these functions +flagged by the compiler. + +These functions are flagged due to missing prototypes when building +against a Linux 6.8 kernel (which sets the -Wmissing-declarations and +-Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + +When building against a kernel with CONFIG_WERROR=y, the build fails. + +This is an openafs-1.8.x specific commit. + +The function afs_thread_wrapper() in LINUX/osi_misc.c on the master +branch was changed to a static function with commit: + 'afs: Drop GLOCK for various Rx calls' (d5e1428a3b) +However this is a larger change than needed to fix the build problem and +the commit could have a significant impact for 1.8.x since it is +changing rx locking. To avoid introducing such a change, just change +the afs_thread_wrapper() to static as a 1.8.x specific commit. + +There are no functional changes in this commit. + +Change-Id: I4edc61e6a4989c16ccf41b935e205dbf209bf2a5 +Reviewed-on: https://gerrit.openafs.org/15727 +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +--- + src/afs/LINUX/osi_misc.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c +index aa5d5fc93..27f73cd1f 100644 +--- a/src/afs/LINUX/osi_misc.c ++++ b/src/afs/LINUX/osi_misc.c +@@ -155,7 +155,8 @@ int osi_abspath(char *aname, char *buf, int buflen, + + + /* This could use some work, and support on more platforms. */ +-int afs_thread_wrapper(void *rock) ++static int ++afs_thread_wrapper(void *rock) + { + void (*proc)(void) = rock; + __module_get(THIS_MODULE); +-- +2.45.1 + diff --git a/0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch b/0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch new file mode 100644 index 000000000000..a3276fffdb0c --- /dev/null +++ b/0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch @@ -0,0 +1,232 @@ +From fd0d767b06ef8fb2c169d8948e0526349de92ff8 Mon Sep 17 00:00:00 2001 +From: Cheyenne Wills <cwills@sinenomine.net> +Date: Mon, 15 Apr 2024 08:22:37 -0600 +Subject: [PATCH 31/32] Linux-6.9: file_lock mbrs moved to file_lock_core + +In the Linux 6.9 commit: + 'filelock: split common fields into struct file_lock_core' (a69ce85ec9) +several fields were relocated into a new structure, file_lock_core, +which was added as a member the file_lock structure. The names where +changed (fl_x to flc_x). + +Add a configure test to determine if the new members (flc_type, flc_pid, +and flc_flags) are available as part of the file_lock_core structure. + +Add static inline getter/setter routines to handle accessing the +flc_type or flc_pid members in the file_lock_core structure, or the +fl_type, fl_pid members in the file_lock structure as appropriate. Add +static inline function to clear FL_SLEEP in the flc_flag in the +file_lock_core structure or the fl_flag in the file_lock structure as +appropriate. + +Minor surrounding white space cleanup. + +Reviewed-on: https://gerrit.openafs.org/15708 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Andrew Deason <adeason@sinenomine.net> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +(cherry picked from commit 9937cce3f35f4e3aad0802189457bf16b84d7ab4) + +Change-Id: I51343e1c2e360b68eabe2cc4069c25948b6c0729 +--- + src/afs/LINUX/osi_vnodeops.c | 97 ++++++++++++++++++++++++++------- + src/cf/linux-kernel-assorted.m4 | 1 + + src/cf/linux-test4.m4 | 18 ++++++ + 3 files changed, 95 insertions(+), 21 deletions(-) + +diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c +index 8aeeafa9b..b709ad1a5 100644 +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -712,6 +712,61 @@ afs_linux_fsync(struct file *fp, int datasync) + + } + ++/* Handle getting/setting file_lock type */ ++ ++static inline unsigned char ++afs_get_flock_type(struct file_lock *flp) ++{ ++#if defined(HAVE_FILE_LOCK_CORE) ++ return flp->c.flc_type; ++#else ++ return flp->fl_type; ++#endif ++} ++ ++static inline void ++afs_set_flock_type(struct file_lock *flp, unsigned char type) ++{ ++#if defined(HAVE_FILE_LOCK_CORE) ++ flp->c.flc_type = type; ++#else ++ flp->fl_type = type; ++#endif ++} ++ ++/* Handle getting/setting file_lock pid */ ++ ++static inline pid_t ++afs_get_flock_pid(struct file_lock *flp) ++{ ++#if defined(HAVE_FILE_LOCK_CORE) ++ return flp->c.flc_pid; ++#else ++ return flp->fl_pid; ++#endif ++} ++ ++static inline void ++afs_set_flock_pid(struct file_lock *flp, pid_t pid) ++{ ++#if defined(HAVE_FILE_LOCK_CORE) ++ flp->c.flc_pid = pid; ++#else ++ flp->fl_pid = pid; ++#endif ++} ++ ++/* Handle clearing file_lock sleep */ ++ ++static inline void ++afs_clear_flock_sleep(struct file_lock *flp) ++{ ++#if defined(HAVE_FILE_LOCK_CORE) ++ flp->c.flc_flags &= ~FL_SLEEP; ++#else ++ flp->fl_flags &= ~FL_SLEEP; ++#endif ++} + + static int + afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp) +@@ -723,8 +778,8 @@ afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp) + + /* Convert to a lock format afs_lockctl understands. */ + memset(&flock, 0, sizeof(flock)); +- flock.l_type = flp->fl_type; +- flock.l_pid = flp->fl_pid; ++ flock.l_type = afs_get_flock_type(flp); ++ flock.l_pid = afs_get_flock_pid(flp); + flock.l_whence = 0; + flock.l_start = flp->fl_start; + if (flp->fl_end == OFFSET_MAX) +@@ -746,10 +801,10 @@ afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp) + code = afs_convert_code(afs_lockctl(vcp, &flock, cmd, credp)); + AFS_GUNLOCK(); + +- if ((code == 0 || flp->fl_type == F_UNLCK) && +- (cmd == F_SETLK || cmd == F_SETLKW)) { ++ if ((code == 0 || afs_get_flock_type(flp) == F_UNLCK) && ++ (cmd == F_SETLK || cmd == F_SETLKW)) { + code = afs_posix_lock_file(fp, flp); +- if (code && flp->fl_type != F_UNLCK) { ++ if (code && afs_get_flock_type(flp) != F_UNLCK) { + struct AFS_FLOCK flock2; + flock2 = flock; + flock2.l_type = F_UNLCK; +@@ -762,17 +817,17 @@ afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp) + * kernel, as lockctl knows nothing about byte range locks + */ + if (code == 0 && cmd == F_GETLK && flock.l_type == F_UNLCK) { +- afs_posix_test_lock(fp, flp); +- /* If we found a lock in the kernel's structure, return it */ +- if (flp->fl_type != F_UNLCK) { +- crfree(credp); +- return 0; +- } ++ afs_posix_test_lock(fp, flp); ++ /* If we found a lock in the kernel's structure, return it */ ++ if (afs_get_flock_type(flp) != F_UNLCK) { ++ crfree(credp); ++ return 0; ++ } + } + + /* Convert flock back to Linux's file_lock */ +- flp->fl_type = flock.l_type; +- flp->fl_pid = flock.l_pid; ++ afs_set_flock_type(flp, flock.l_type); ++ afs_set_flock_pid(flp, flock.l_pid); + flp->fl_start = flock.l_start; + if (flock.l_len == 0) + flp->fl_end = OFFSET_MAX; /* Lock to end of file */ +@@ -792,8 +847,8 @@ afs_linux_flock(struct file *fp, int cmd, struct file_lock *flp) { + struct AFS_FLOCK flock; + /* Convert to a lock format afs_lockctl understands. */ + memset(&flock, 0, sizeof(flock)); +- flock.l_type = flp->fl_type; +- flock.l_pid = flp->fl_pid; ++ flock.l_type = afs_get_flock_type(flp); ++ flock.l_pid = afs_get_flock_pid(flp); + flock.l_whence = 0; + flock.l_start = 0; + flock.l_len = 0; +@@ -812,11 +867,11 @@ afs_linux_flock(struct file *fp, int cmd, struct file_lock *flp) { + code = afs_convert_code(afs_lockctl(vcp, &flock, cmd, credp)); + AFS_GUNLOCK(); + +- if ((code == 0 || flp->fl_type == F_UNLCK) && +- (cmd == F_SETLK || cmd == F_SETLKW)) { +- flp->fl_flags &=~ FL_SLEEP; ++ if ((code == 0 || afs_get_flock_type(flp) == F_UNLCK) && ++ (cmd == F_SETLK || cmd == F_SETLKW)) { ++ afs_clear_flock_sleep(flp); + code = flock_lock_file_wait(fp, flp); +- if (code && flp->fl_type != F_UNLCK) { ++ if (code && afs_get_flock_type(flp) != F_UNLCK) { + struct AFS_FLOCK flock2; + flock2 = flock; + flock2.l_type = F_UNLCK; +@@ -826,8 +881,8 @@ afs_linux_flock(struct file *fp, int cmd, struct file_lock *flp) { + } + } + /* Convert flock back to Linux's file_lock */ +- flp->fl_type = flock.l_type; +- flp->fl_pid = flock.l_pid; ++ afs_set_flock_type(flp, flock.l_type); ++ afs_set_flock_pid(flp, flock.l_pid); + + crfree(credp); + return code; +diff --git a/src/cf/linux-kernel-assorted.m4 b/src/cf/linux-kernel-assorted.m4 +index 49827d5be..aea7b2bd7 100644 +--- a/src/cf/linux-kernel-assorted.m4 ++++ b/src/cf/linux-kernel-assorted.m4 +@@ -59,6 +59,7 @@ LINUX_D_INVALIDATE_IS_VOID + LINUX_KERNEL_READ_OFFSET_IS_LAST + LINUX_KEYRING_SEARCH_TAKES_RECURSE + LINUX_GENERIC_FILLATTR_TAKES_REQUEST_MASK ++LINUX_FILE_LOCK_CORE + ]) + + +diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 +index 7889c904a..b22930690 100644 +--- a/src/cf/linux-test4.m4 ++++ b/src/cf/linux-test4.m4 +@@ -867,3 +867,21 @@ AC_DEFUN([LINUX_GENERIC_FILLATTR_TAKES_REQUEST_MASK], [ + [define if your generic_fillattr has the request_mask_parameter], + []) + ]) ++ ++dnl linux 6.9 moved and renamed fl_type, fl_pid and fl_flags ++dnl from file_lock into a new structure file_lock_core. Check for these as a ++dnl single test ++AC_DEFUN([LINUX_FILE_LOCK_CORE], [ ++ AC_CHECK_LINUX_BUILD([whether fl_type fl_pid and fl_flags are in structure file_lock_core], ++ [ac_cv_linux_file_lock_core], ++ [#include <linux/filelock.h>], ++ [ ++ static struct file_lock flock; ++ flock.c.flc_type = 0; ++ flock.c.flc_pid = 0; ++ flock.c.flc_flags = 0; ++ ], ++ [HAVE_FILE_LOCK_CORE], ++ [define if file_lock_core exists], ++ []) ++]) +-- +2.45.1 + diff --git a/0032-afs-Reintroduce-and-use-DFlushDCache.patch b/0032-afs-Reintroduce-and-use-DFlushDCache.patch new file mode 100644 index 000000000000..5c6951f36d13 --- /dev/null +++ b/0032-afs-Reintroduce-and-use-DFlushDCache.patch @@ -0,0 +1,97 @@ +From fa093a57d443a30be0891caacb18677fd4b73ac0 Mon Sep 17 00:00:00 2001 +From: Andrew Deason <adeason@sinenomine.net> +Date: Thu, 25 Apr 2024 15:58:49 -0500 +Subject: [PATCH 32/32] afs: Reintroduce and use DFlushDCache() + +This reverts commit 432ac5810e51bb5bb2cf1df0bfebc64d1c4d7a39 (afs: +Remove DFlushDCache()). This also re-adds the caller of DFlushDCache() +removed by commit 4045f3d5350955de91e019b09ad2ed7941f6dadb +(disconnected-shadow-directory-fixes-20090121), and the prototype +removed by commit 5ad1e6cb904b953fbb04603f3ce1466dcc38cd48 (dir: +Prototype and function name cleanup). + +The removal of the DFlushDCache() call in commit 4045f3d535 seems like +a mistake. If the directory in question has dirty pages in memory, we +need to flush those to the cache before making a copy of the +directory's data, because we read the existing dir's data from the +cache. If we don't flush, afs_MakeShadowDir() might make a copy of the +dcache that is missing updates to the directory blob. + +Reviewed-on: https://gerrit.openafs.org/15740 +Tested-by: BuildBot <buildbot@rampaginggeek.com> +Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> +Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> +(cherry picked from commit 799d789fbaefc8c4dbcb803b885deb35f4947d26) + +Change-Id: I3bffab4bae4214503591ac102aba59c7072b39af +--- + src/afs/afs_buffer.c | 25 +++++++++++++++++++++++++ + src/afs/afs_dcache.c | 3 +++ + src/afs/afs_prototypes.h | 1 + + 3 files changed, 29 insertions(+) + +diff --git a/src/afs/afs_buffer.c b/src/afs/afs_buffer.c +index 9538c6806..747bd7afb 100644 +--- a/src/afs/afs_buffer.c ++++ b/src/afs/afs_buffer.c +@@ -516,6 +516,31 @@ DFlushBuffer(struct buffer *ab) + afs_CFileClose(tfile); + } + ++void ++DFlushDCache(struct dcache *adc) ++{ ++ int i; ++ struct buffer *tb; ++ ++ ObtainReadLock(&afs_bufferLock); ++ ++ for (i = 0; i <= PHPAGEMASK; i++) ++ for (tb = phTable[pHash(adc->index, i)]; tb != NULL; tb = tb->hashNext) ++ if (tb->fid == adc->index) { ++ ObtainWriteLock(&tb->lock, 701); ++ tb->lockers++; ++ ReleaseReadLock(&afs_bufferLock); ++ if (tb->dirty) { ++ DFlushBuffer(tb); ++ } ++ tb->lockers--; ++ ReleaseWriteLock(&tb->lock); ++ ObtainReadLock(&afs_bufferLock); ++ } ++ ++ ReleaseReadLock(&afs_bufferLock); ++} ++ + int + DFlush(void) + { +diff --git a/src/afs/afs_dcache.c b/src/afs/afs_dcache.c +index 46d0bdba5..35fd59473 100644 +--- a/src/afs/afs_dcache.c ++++ b/src/afs/afs_dcache.c +@@ -3842,6 +3842,9 @@ afs_MakeShadowDir(struct vcache *avc, struct dcache *adc) + + ReleaseWriteLock(&afs_xdcache); + ++ /* Make sure and flush dir buffers back into the disk cache */ ++ DFlushDCache(adc); ++ + /* Alloc a 4k block. */ + data = afs_osi_Alloc(4096); + if (!data) { +diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h +index b9811f892..2ca80a563 100644 +--- a/src/afs/afs_prototypes.h ++++ b/src/afs/afs_prototypes.h +@@ -26,6 +26,7 @@ extern void afs_FreeAllAxs(struct axscache **headp); + extern void shutdown_xscache(void); + + /* afs_buffer.c */ ++extern void DFlushDCache(struct dcache *); + extern void shutdown_bufferpackage(void); + + /* afs_call.c */ +-- +2.45.1 + @@ -6,7 +6,7 @@ pkgname=openafs-modules _srcname=openafs pkgver=1.8.11 -pkgrel=1 +pkgrel=2 pkgdesc="Kernel module for OpenAFS" arch=('i686' 'x86_64' 'armv7h') url="http://www.openafs.org" @@ -22,10 +22,10 @@ source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz 0003-afs-Remove-SRXAFSCB_GetDE.patch 0004-afs-remove-dead-ICL-fstrace-code.patch 0005-cf-Add-function-prototypes-for-linux-conftest.patch - 0006-afs-Remove-DFlushDCache.patch - 0007-afs-Remove-afs_MemExtendEntry.patch - 0008-afs-Remove-afs_osi_UnmaskUserLoop.patch - 0009-afs-Remove-dummy_PSetAcl.patch + 0006-afs-Remove-afs_MemExtendEntry.patch + 0007-afs-Remove-afs_osi_UnmaskUserLoop.patch + 0008-afs-Remove-dummy_PSetAcl.patch + 0009-afs-Remove-DFlushDCache.patch 0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch 0011-afs-Remove-afs_DbgDisconFiles.patch 0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch @@ -45,37 +45,43 @@ source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz 0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch 0027-Linux-6.8-Remove-ctl_table-sentinels.patch 0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch - 0029-afs-Drop-GLOCK-for-various-Rx-calls.patch) + 0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch + 0030-Linux-Define-afs_thread_wrapper-as-static.patch + 0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch + 0032-afs-Reintroduce-and-use-DFlushDCache.patch) sha256sums=('e2efb4710996b7d23198b53c56295a8f9e24e8a555317c5fc63b8125a3714ecd' - 'e85f5656f76700e4236b1033cf4b7f08c59ab757d52d2a67dcb2c65762388733' - '8d48b727e77b1e952310ad9f94bd4ece9e64e1f03a35463bb23dffa1009738d8' - 'c44c91e31df1ec77f1a39eb7b172c4e348e41b293ae05606288bfe333ad7c29b' - '48dd1065f8bcb90d0bdc7ae5b484da5a1a5d93461f6ac1d6ceef103d2b807f22' - 'ce054eadb9c84173b0bd1318ef88cb9500049431779252e501491d9389141bad' - 'ae525167f5f6f7e0301eee70b3424e51e45e56e9fe9588b95cf72d5fa96717b9' - '974861c174969591351c5fb4a47946e02f979c2b5590f89d9d16dfbe4238451f' - 'e5d72b5e08c63df10299b56bfebf3c5c44e07d16c0436fb2c0eef3614ad505e3' - '8143496d251dd1f13b8603b4e692fbd67f925caccd12035598e70542d24389f5' - '216e684f8181adc4a4b3c4ba934997cada10831c5608e724e91d09e836ec626d' - '2e573535da21f8be5b83c8e82166c0bdc5896293b28e793fa4c1bdb9ff942dbd' - '0535fbdd3c8431b7b16842f1fa6592355f647ae456112e97d34d541e74204be5' - '7aacef8bd6832f119472f7d52af36951a56f1e54d36d9bce59998fcf818517e5' - '3db5177c80a7694c1be3b74f419570a5076edc519b40112cf17e68fecc7574a3' - '9fe647d54c999e358597fe671dc7e88da609a69bb93624e15919d9b4cc4fdb5a' - '7ced2ca2d4f54b2fa15c584869de122810ee0d1b024d1bf541f38d77172e311c' - 'c88c8b8e1c993da773eea3ae4f17e5171189ed7e1fc5769fdb49d82cae0cffd3' - 'c57c826c9f26568241bcb17eff04067a1b5e388f72523765aa80d480c3690325' - 'd508dd6136170fcb4794e283178f9c5f4ede12f415b882ba7c13470e8f09bdde' - '894eb7e7889749cefa9cbf86e2eceda470d20510a5a7a5be2cd851f8570e076c' - 'fb36b0ef833811910cae42d8411a00dcf2aff08c8799f766e32cda3ad5a7f0e2' - 'd08d38ff53890632900de5d69dc105711d5bce2d02a55ffe70c87b38ca39aca7' - 'db700b5f62e979af60856278306e8fce6df21dfb24996dd0d690c82222f4d793' - '46294f8323bf71ee96c8f765bb36fc5e0af6b2257deac7eaea4f4cb9568d9fe1' - '5d4a2614065046a32ef805198349e70476d3ed9e079a4ef7577e71e0dac1d2fa' - '4c8201265f558bac146bf8cee38f8c925b2c2262133ae88d9eb2f0623a0ada07' - 'ceb02a7a5e596434215693f065ad6221f568f85aab173df4752248d2c4d8f971' - '2b05242c5516871191a251a617c6c02e80f34b92b6cfeb0c9c6a1f3e0ff915d9' - '82b197ac5f2639d891c8a646963ef6b87ef4171c7a70ac6ca7a9a55511090952') + '8156fa6b024531b9c18d3727e4a7319eb270bb862c6f9ee44eabf6920bcf3736' + '18f7fdd1c3a392f5b6c660d9eedfdf189ce19629da1c2f4e8197aa1198df9008' + '863eba3beee07f972d478624587975fc997a78867e3f9cb2f4ab649bfabae0bf' + '22c4102a0919b71af82ec8525c016b9692424f67ace207c225ebab838111d5cc' + 'd79cd75af56537a28cd15692af61c1f701527795dea789b85535976fb258f420' + '9c0423ebc12378fff0595735510e80e0759895d3d763f1d6d364d6fc22d8d272' + '58a2fbbd131a6d480ac1ede5a79c9ae90ce0a9edc81d66b4d3dede9980c662b8' + '1aefdecb45083192fcfb76e8029404fb82295d1051699bea9cddc7c0be81e00e' + '6542a046d99b304d716c6034aa468ebc7dc76e37507d328bb82b3797fef39220' + 'dff332541f05a125fd4b7713e8c6a2030fa9abf4ecb56e7b0c7ee554f73a9fa9' + '8c59d49b409fde14538f7eab2efbf51f281e4ca977cb4658fb0197ae5c317aef' + '45302b6323b76162d648883e52ae68cf95933e96697f58a4f2b948687a1e4d51' + '0be51a38cc7208ecbf855880115fe797b6bef0005ff53391d2f7a636bb67eff4' + '8882dec77cf6bac3c2022c3b32460f76988a736aa3312b3ecc1daaca4a8d601e' + '3f7de2872cd90e50e103a3c388c9a4501e85d27041d4e696ca49a885b4ca7b60' + 'd750390ac3ef573793c44862b6f59302ef0ba6b2ba24bbded58dc70d83f25e47' + 'b31fd46ae26a2a34c5d81c77edccc69a42c8d0362cc25254730fddedb22753c8' + '963b27b44402149159dd8f5c1e9821704cacd2a6de1fb2c8088bfb11f10d1c99' + '09bac17f405b2f00d99278ecc441596aab1ac1dae80586efa86ade3d7806c266' + '4b2de147029b6f91fdeeddb8276fbc577926378440d019f2a197c3b51517e6d8' + '9354aa971f3d9e460ef3179347f8ee7f6c38597571f84d648a237a7edcaf4835' + '067c31796977aef73747f85a85cb9045c4361502eb7f9d622aecf2dd9ed5b723' + '063a8d942eb3a9f5a27780dd12b2dea2e67f8f3b35d7bfe2eedfe879ea2b1b40' + '0072ef62a412e23c136bb69e67ec05bc802cc96636e9a0827cc3dd3dd43bc935' + '3564c0a944f6e2478477105625809729e6183213b969fe2ed9b69483244c4be7' + '072f7aa32c711447d794ad430b68475fdfa3e21e805dab640086226fbc328c66' + '867086d1809b63a1e87afc7c3b440f6bccb39e6fbe40d05fc3a35aa5ecf4f1cd' + '2ff01dbf33ebb7b3cb6e5be83a6adab906ae287836cc1584561144f5be63d6cd' + '049b82cb0b1427d87460f703cf1926e4b86b386afed1e5ebc78d1ac61b0ca137' + 'fe36d327804d315cb54b4cedcb44631fe70044db6ce3ba88387698c4b91808df' + '0a3f1b80d2312edfd9424e0bbcf943a13b049c9556778b600b103d11e9b62182' + '32f0bda8b9a3a408af5247347e2896011122362584abcd03b5c63973bd863d07') # Heuristic to determine version of installed kernel # You can modify this if the heuristic fails @@ -90,16 +96,16 @@ _extramodules="/usr/lib/modules/${_kernelver}/extramodules" prepare() { cd "${srcdir}/${_srcname}-${pkgver}" - # Compatibility with Linux 6.8 + # Compatibility with Linux 6.8 and newer + bug fixes patch -p1 < "$srcdir"/0001-afs-Make-afs_AllocDCache-static.patch patch -p1 < "$srcdir"/0002-LINUX-Minor-osi_vfsop.c-cleanup.patch patch -p1 < "$srcdir"/0003-afs-Remove-SRXAFSCB_GetDE.patch patch -p1 < "$srcdir"/0004-afs-remove-dead-ICL-fstrace-code.patch patch -p1 < "$srcdir"/0005-cf-Add-function-prototypes-for-linux-conftest.patch - patch -p1 < "$srcdir"/0006-afs-Remove-DFlushDCache.patch - patch -p1 < "$srcdir"/0007-afs-Remove-afs_MemExtendEntry.patch - patch -p1 < "$srcdir"/0008-afs-Remove-afs_osi_UnmaskUserLoop.patch - patch -p1 < "$srcdir"/0009-afs-Remove-dummy_PSetAcl.patch + patch -p1 < "$srcdir"/0006-afs-Remove-afs_MemExtendEntry.patch + patch -p1 < "$srcdir"/0007-afs-Remove-afs_osi_UnmaskUserLoop.patch + patch -p1 < "$srcdir"/0008-afs-Remove-dummy_PSetAcl.patch + patch -p1 < "$srcdir"/0009-afs-Remove-DFlushDCache.patch patch -p1 < "$srcdir"/0010-afs-Remove-SRXAFSCB_FetchData-StoreData.patch patch -p1 < "$srcdir"/0011-afs-Remove-afs_DbgDisconFiles.patch patch -p1 < "$srcdir"/0012-afs-Add-declaration-for-RXAFS_ResidencyCmd.patch @@ -119,7 +125,10 @@ prepare() { patch -p1 < "$srcdir"/0026-Linux-6.8-use-hlist-iteration-for-dentry-children.patch patch -p1 < "$srcdir"/0027-Linux-6.8-Remove-ctl_table-sentinels.patch patch -p1 < "$srcdir"/0028-Linux-6.8-Use-roken-s-strlcpy-in-kernel-module.patch - patch -p1 < "$srcdir"/0029-afs-Drop-GLOCK-for-various-Rx-calls.patch + patch -p1 < "$srcdir"/0029-Linux-Remove-weak-attribute-for-key_type_keyring.patch + patch -p1 < "$srcdir"/0030-Linux-Define-afs_thread_wrapper-as-static.patch + patch -p1 < "$srcdir"/0031-Linux-6.9-file_lock-mbrs-moved-to-file_lock_core.patch + patch -p1 < "$srcdir"/0032-afs-Reintroduce-and-use-DFlushDCache.patch # Only needed when changes to configure were made ./regen.sh -q |