diff --git a/056a7a8.diff b/056a7a8.diff deleted file mode 100644 index 77bc313..0000000 --- a/056a7a8.diff +++ /dev/null @@ -1,46 +0,0 @@ -From 056a7a8005a68cf2fb8be80668b139aa87a0de0b Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 09:28:02 -0700 -Subject: [PATCH] afs: Remove dummy_PSetAcl() - -The function dummy_PSetAcl() is not referenced anywhere within the -source tree. - -Remove the function dummy_PSetAcl(). - -The commit: 'doxygen-comments-20081010' (4b72f8765c) -introduced the function, but dummy_PSetAcl() has never been referenced -or defined within a header file. - -This function is flagged due to a missing prototype 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. - -Reviewed-on: https://gerrit.openafs.org/15618 -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 05ca98687d882c72915e91430e29a4f2a36c502c) - -Change-Id: Ie4420a365e07d2d8564530e004df75330e86bea5 ---- - -diff --git a/src/afs/afs_pioctl.c b/src/afs/afs_pioctl.c -index 9182a4b..7ddb5ad 100644 ---- a/src/afs/afs_pioctl.c -+++ b/src/afs/afs_pioctl.c -@@ -1426,12 +1426,6 @@ - * - * \post Changed ACL, via direct writing to the wire - */ --int --dummy_PSetAcl(char *ain, char *aout) --{ -- return 0; --} -- - DECL_PIOCTL(PSetAcl) - { - afs_int32 code; diff --git a/05ac614.diff b/05ac614.diff deleted file mode 100644 index fe4a85c..0000000 --- a/05ac614.diff +++ /dev/null @@ -1,264 +0,0 @@ -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] 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. -Some of these seem to have been intended to support fine-grained event -tracing, but the implementation was never completed. - -Remove the dead code. No functional change is incurred by this commit. - -Reviewed-on: https://gerrit.openafs.org/14555 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -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> ---- - -diff --git a/src/afs/afs_icl.c b/src/afs/afs_icl.c -index 8d09113..42b4a0c 100644 ---- a/src/afs/afs_icl.c -+++ b/src/afs/afs_icl.c -@@ -538,18 +538,6 @@ - #define ICL_APPENDLONG(lp, x) ICL_APPENDINT32((lp), (x)) - #endif - --/* routine to tell whether we're dealing with the address or the -- * object itself -- */ --int --afs_icl_UseAddr(int type) --{ -- if (type == ICL_TYPE_HYPER || type == ICL_TYPE_STRING -- || type == ICL_TYPE_FID || type == ICL_TYPE_INT64) -- return 1; -- else -- return 0; --} - - void - afs_icl_AppendOne(struct afs_icl_log *logp, int type, long parm) -@@ -884,19 +872,6 @@ - return code; - } - --/* return basic parameter information about a log */ --int --afs_icl_GetLogParms(struct afs_icl_log *logp, afs_int32 * maxSizep, -- afs_int32 * curSizep) --{ -- ObtainReadLock(&logp->lock); -- *maxSizep = logp->logSize; -- *curSizep = logp->logElements; -- ReleaseReadLock(&logp->lock); -- return 0; --} -- -- - /* hold and release logs */ - int - afs_icl_LogHold(struct afs_icl_log *logp) -@@ -904,14 +879,6 @@ - ObtainWriteLock(&afs_icl_lock, 187); - logp->refCount++; - ReleaseWriteLock(&afs_icl_lock); -- return 0; --} -- --/* hold and release logs, called with lock already held */ --int --afs_icl_LogHoldNL(struct afs_icl_log *logp) --{ -- logp->refCount++; - return 0; - } - -@@ -1070,32 +1037,6 @@ - return tp; - } - --int --afs_icl_EnumerateLogs(int (*aproc) -- (char *name, char *arock, struct afs_icl_log * tp), -- char *arock) --{ -- struct afs_icl_log *tp; -- afs_int32 code; -- -- code = 0; -- ObtainWriteLock(&afs_icl_lock, 195); -- for (tp = afs_icl_allLogs; tp; tp = tp->nextp) { -- tp->refCount++; /* hold this guy */ -- ReleaseWriteLock(&afs_icl_lock); -- ObtainReadLock(&tp->lock); -- code = (*aproc) (tp->name, arock, tp); -- ReleaseReadLock(&tp->lock); -- ObtainWriteLock(&afs_icl_lock, 196); -- if (--tp->refCount == 0) -- afs_icl_ZapLog(tp); -- if (code) -- break; -- } -- ReleaseWriteLock(&afs_icl_lock); -- return code; --} -- - struct afs_icl_set *afs_icl_allSets = 0; - - int -@@ -1198,46 +1139,6 @@ - return 0; - } - --/* function to change event enabling information for a particular set */ --int --afs_icl_SetEnable(struct afs_icl_set *setp, afs_int32 eventID, int setValue) --{ -- char *tp; -- -- ObtainWriteLock(&setp->lock, 200); -- if (!ICL_EVENTOK(setp, eventID)) { -- ReleaseWriteLock(&setp->lock); -- return -1; -- } -- tp = &setp->eventFlags[ICL_EVENTBYTE(eventID)]; -- if (setValue) -- *tp |= ICL_EVENTMASK(eventID); -- else -- *tp &= ~(ICL_EVENTMASK(eventID)); -- ReleaseWriteLock(&setp->lock); -- return 0; --} -- --/* return indication of whether a particular event ID is enabled -- * for tracing. If *getValuep is set to 0, the event is disabled, -- * otherwise it is enabled. All events start out enabled by default. -- */ --int --afs_icl_GetEnable(struct afs_icl_set *setp, afs_int32 eventID, int *getValuep) --{ -- ObtainReadLock(&setp->lock); -- if (!ICL_EVENTOK(setp, eventID)) { -- ReleaseWriteLock(&setp->lock); -- return -1; -- } -- if (setp->eventFlags[ICL_EVENTBYTE(eventID)] & ICL_EVENTMASK(eventID)) -- *getValuep = 1; -- else -- *getValuep = 0; -- ReleaseReadLock(&setp->lock); -- return 0; --} -- - /* hold and release event sets */ - int - afs_icl_SetHold(struct afs_icl_set *setp) -@@ -1337,54 +1238,6 @@ - } - } - ReleaseReadLock(&setp->lock); -- return code; --} -- --int --afs_icl_EnumerateSets(int (*aproc) -- (char *name, char *arock, struct afs_icl_log * tp), -- char *arock) --{ -- struct afs_icl_set *tp, *np; -- afs_int32 code; -- -- code = 0; -- ObtainWriteLock(&afs_icl_lock, 205); -- for (tp = afs_icl_allSets; tp; tp = np) { -- tp->refCount++; /* hold this guy */ -- ReleaseWriteLock(&afs_icl_lock); -- code = (*aproc) (tp->name, arock, (struct afs_icl_log *)tp); -- ObtainWriteLock(&afs_icl_lock, 206); -- np = tp->nextp; /* tp may disappear next, but not np */ -- if (--tp->refCount == 0 && (tp->states & ICL_SETF_DELETED)) -- afs_icl_ZapSet(tp); -- if (code) -- break; -- } -- ReleaseWriteLock(&afs_icl_lock); -- return code; --} -- --int --afs_icl_AddLogToSet(struct afs_icl_set *setp, struct afs_icl_log *newlogp) --{ -- int i; -- int code = -1; -- -- ObtainWriteLock(&setp->lock, 207); -- for (i = 0; i < ICL_LOGSPERSET; i++) { -- if (!setp->logs[i]) { -- setp->logs[i] = newlogp; -- code = i; -- afs_icl_LogHold(newlogp); -- if (!(setp->states & ICL_SETF_FREED)) { -- /* bump up the number of sets using the log */ -- afs_icl_LogUse(newlogp); -- } -- break; -- } -- } -- ReleaseWriteLock(&setp->lock); - return code; - } - -diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h -index e9a655e..ed43635 100644 ---- a/src/afs/afs_prototypes.h -+++ b/src/afs/afs_prototypes.h -@@ -364,10 +364,7 @@ - extern int afs_icl_CopyOut(struct afs_icl_log *logp, - afs_int32 * bufferp, afs_int32 * bufSizep, - afs_uint32 * cookiep, afs_int32 * flagsp); --extern int afs_icl_GetLogParms(struct afs_icl_log *logp, afs_int32 * maxSizep, -- afs_int32 * curSizep); - extern int afs_icl_LogHold(struct afs_icl_log *logp); --extern int afs_icl_LogHoldNL(struct afs_icl_log *logp); - extern int afs_icl_LogUse(struct afs_icl_log *logp); - extern int afs_icl_LogFreeUse(struct afs_icl_log *logp); - extern int afs_icl_LogSetSize(struct afs_icl_log *logp, -@@ -378,11 +375,6 @@ - extern int afs_icl_ZeroLog(struct afs_icl_log *logp); - extern int afs_icl_LogFree(struct afs_icl_log *logp); - extern struct afs_icl_log *afs_icl_FindLog(char *name); --extern int -- afs_icl_EnumerateLogs(int (*aproc) -- -- (char *name, char *arock, struct afs_icl_log * tp), -- char *arock); - extern int afs_icl_CreateSet(char *name, struct afs_icl_log *baseLogp, - struct afs_icl_log *fatalLogp, - struct afs_icl_set **outSetpp); -@@ -391,18 +383,7 @@ - struct afs_icl_log *fatalLogp, - afs_uint32 flags, - struct afs_icl_set **outSetpp); --extern int afs_icl_SetEnable(struct afs_icl_set *setp, afs_int32 eventID, -- int setValue); --extern int afs_icl_GetEnable(struct afs_icl_set *setp, afs_int32 eventID, -- int *getValuep); - extern int afs_icl_ZeroSet(struct afs_icl_set *setp); --extern int -- afs_icl_EnumerateSets(int (*aproc) -- -- (char *name, char *arock, struct afs_icl_log * tp), -- char *arock); --extern int afs_icl_AddLogToSet(struct afs_icl_set *setp, -- struct afs_icl_log *newlogp); - extern int afs_icl_SetSetStat(struct afs_icl_set *setp, int op); - extern int afs_icl_SetHold(struct afs_icl_set *setp); - extern int afs_icl_ZapSet(struct afs_icl_set *setp); diff --git a/073adec.diff b/073adec.diff deleted file mode 100644 index ebf2a52..0000000 --- a/073adec.diff +++ /dev/null @@ -1,126 +0,0 @@ -From 073adec17a9b7b55d3672b17f7faa4a122ce6e9d Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu, 08 Feb 2024 12:22:13 -0700 -Subject: [PATCH] afs: Remove SRXAFSCB_FetchData/StoreData - -Commit 'client-64bit-file-size-support-20011031' (971b18bc42) introduced -the RPC functions SRXAFSCB_FetchData() and SRXAFSCB_StoreData with RPC -numbers of 65536 and 65537 respectively. - -Commit 'more-64bit-file-size-support-20011031' (c5b1a3775f) removed the -references from afscbint.xg, but did not remove the actual code. The -65536 RPC number was reassigned to SRXAFSCB_GetCE64, and the commit: -'This is mostly a rewrite of src/afs/afs_cell.c, and associated changes' -(629d08065) assigned the 65537 RPC to SRXAFSCB_GetCellByNum. - -Remove the 2 functions since there are no references other than the -prototype in afs_prototypes.h. - -This function is flagged due to a missing prototype 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). - -Reviewed-on: https://gerrit.openafs.org/15639 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 379f7fc51d411990189ec28e48c91edc87d76120) - -Change-Id: I1a3539227d22e6df89d78245634dfeb14943035a ---- - -diff --git a/src/afs/afs_callback.c b/src/afs/afs_callback.c -index 22edefb..56e8cd2 100644 ---- a/src/afs/afs_callback.c -+++ b/src/afs/afs_callback.c -@@ -1473,71 +1473,6 @@ - } - - /*------------------------------------------------------------------------ -- * EXPORTED SRXAFSCB_FetchData -- * -- * Description: -- * Routine to do third party move from a remioserver to the original -- * issuer of an ArchiveData request. Presently supported only by the -- * "fs" command, not by the AFS client. -- * -- * Arguments: -- * rxcall: Ptr to Rx call on which this request came in. -- * Fid: pointer to AFSFid structure. -- * Fd: File descriptor inside fs command. -- * Position: Offset in the file. -- * Length: Data length to transfer. -- * TotalLength: Pointer to total file length field -- * -- * Returns: -- * 0 on success -- * -- * Environment: -- * Nothing interesting. -- * -- * Side Effects: -- *------------------------------------------------------------------------*/ --int --SRXAFSCB_FetchData(struct rx_call *rxcall, struct AFSFid *Fid, afs_int32 Fd, -- afs_int64 Position, afs_int64 Length, -- afs_int64 * TotalLength) --{ -- return ENOSYS; --} -- --/*------------------------------------------------------------------------ -- * EXPORTED SRXAFSCB_StoreData -- * -- * Description: -- * Routine to do third party move from a remioserver to the original -- * issuer of a RetrieveData request. Presently supported only by the -- * "fs" command, not by the AFS client. -- * -- * Arguments: -- * rxcall: Ptr to Rx call on which this request came in. -- * Fid: pointer to AFSFid structure. -- * Fd: File descriptor inside fs command. -- * Position: Offset in the file. -- * Length: Data length to transfer. -- * TotalLength: Pointer to total file length field -- * -- * Returns: -- * 0 on success -- * -- * Environment: -- * Nothing interesting. -- * -- * Side Effects: -- * As advertised. -- *------------------------------------------------------------------------*/ --int --SRXAFSCB_StoreData(struct rx_call *rxcall, struct AFSFid *Fid, afs_int32 Fd, -- afs_int64 Position, afs_int64 Length, -- afs_int64 * TotalLength) --{ -- return ENOSYS; --} -- --/*------------------------------------------------------------------------ - * EXPORTED SRXAFSCB_GetCellByNum - * - * Description: -diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h -index ed43635..208bd03 100644 ---- a/src/afs/afs_prototypes.h -+++ b/src/afs/afs_prototypes.h -@@ -103,13 +103,6 @@ - afs_uint32 * serverVersion, - afs_uint32 * configCount, - cacheConfig * config); --extern int SRXAFSCB_FetchData(struct rx_call *rxcall, struct AFSFid *Fid, -- afs_int32 Fd, afs_int64 Position, -- afs_int64 Length, afs_int64 * TotalLength); --extern int SRXAFSCB_StoreData(struct rx_call *rxcall, struct AFSFid *Fid, -- afs_int32 Fd, afs_int64 Position, -- afs_int64 Length, afs_int64 * TotalLength); -- - - /* afs_cbqueue.c */ - extern afs_rwlock_t afs_xcbhash; diff --git a/0d9f6cf.diff b/0d9f6cf.diff deleted file mode 100644 index a6b428c..0000000 --- a/0d9f6cf.diff +++ /dev/null @@ -1,134 +0,0 @@ -From 0d9f6cf121e49cfe1a2047b98d4c30b82a1898bd Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu, 15 Feb 2024 09:00:05 -0700 -Subject: [PATCH] afs: Move function prototypes into headers - -Several .c files contain external function prototypes, while the -implementing files do not have these prototypes. - -Move these prototypes into header files so that the prototypes are -available to both the caller and the implementation. - -Because the file holding the implementation does not have prototypes, -these functions are flagged 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. - -Add the prototypes for the following to afs_prototypes.h: - exporter_add - afs_syscall (AFS_LINUX_ENV) - BlobScan - -Remove the prototypes from the .c files where they are referenced. - -Reviewed-on: https://gerrit.openafs.org/15642 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 85781d7e83ae4501d8ab267bf55ef63f90f63101) - -Change-Id: I74333e99e08af88bebdcbff4767d79397acac358 ---- - -diff --git a/src/afs/LINUX/osi_ioctl.c b/src/afs/LINUX/osi_ioctl.c -index fbdee29..3e79774 100644 ---- a/src/afs/LINUX/osi_ioctl.c -+++ b/src/afs/LINUX/osi_ioctl.c -@@ -34,9 +34,6 @@ - - extern struct proc_dir_entry *openafs_procfs; - --extern asmlinkage long --afs_syscall(long syscall, long parm1, long parm2, long parm3, long parm4); -- - static int - afs_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -diff --git a/src/afs/LINUX/osi_syscall.c b/src/afs/LINUX/osi_syscall.c -index 5e9e519..dc78da8 100644 ---- a/src/afs/LINUX/osi_syscall.c -+++ b/src/afs/LINUX/osi_syscall.c -@@ -91,9 +91,6 @@ - - - /***** ALL PLATFORMS *****/ --extern asmlinkage long --afs_syscall(long syscall, long parm1, long parm2, long parm3, long parm4); -- - static SYSCALLTYPE *afs_sys_call_table; - static SYSCALLTYPE afs_ni_syscall = 0; - -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index 7e85aa5..08fccb1 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -407,8 +407,6 @@ - } - #endif - --extern int BlobScan(struct dcache * afile, afs_int32 ablob, afs_int32 *ablobOut); -- - /* This is a complete rewrite of afs_readdir, since we can make use of - * filldir instead of afs_readdir_move. Note that changes to vcache/dcache - * handling and use of bulkstats will need to be reflected here as well. -diff --git a/src/afs/VNOPS/afs_vnop_lookup.c b/src/afs/VNOPS/afs_vnop_lookup.c -index e1796c5..0fbe4e8 100644 ---- a/src/afs/VNOPS/afs_vnop_lookup.c -+++ b/src/afs/VNOPS/afs_vnop_lookup.c -@@ -667,8 +667,6 @@ - return 0; - } - --extern int BlobScan(struct dcache * afile, afs_int32 ablob, afs_int32 *ablobOut); -- - /* called with an unlocked directory and directory cookie. Areqp - * describes who is making the call. - * Scans the next N (about 30, typically) directory entries, and does -diff --git a/src/afs/afs_nfsclnt.c b/src/afs/afs_nfsclnt.c -index fbb5006..4c7806d 100644 ---- a/src/afs/afs_nfsclnt.c -+++ b/src/afs/afs_nfsclnt.c -@@ -160,7 +160,6 @@ - osi_Assert(ISAFS_GLOCK()); - #endif - if (!init_nfsexporter) { -- extern struct afs_exporter *exporter_add(); - - init_nfsexporter = 1; - LOCK_INIT(&afs_xnfspag, "afs_xnfspag"); -diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h -index 208bd03..9b3b1af 100644 ---- a/src/afs/afs_prototypes.h -+++ b/src/afs/afs_prototypes.h -@@ -331,6 +331,8 @@ - - /* afs_exporter.c */ - extern struct afs_exporter *root_exported; -+extern struct afs_exporter * exporter_add(afs_int32 size, struct exporterops *ops, -+ afs_int32 state, afs_int32 type, char *data); - extern struct afs_exporter *exporter_find(int type); - extern void shutdown_exporter(void); - -@@ -923,6 +925,10 @@ - extern int Afs_syscall(void); - #endif - -+#if defined(AFS_LINUX_ENV) -+extern asmlinkage long afs_syscall(long syscall, long parm1, long parm2, long parm3, long parm4); -+#endif -+ - /* afs_tokens.c */ - struct ktc_tokenUnion; - struct ktc_setTokenData; -@@ -1292,6 +1298,7 @@ - - /* VNOPS/afs_vnop_readdir.c */ - extern int afs_rd_stash_i; -+extern int BlobScan(struct dcache * afile, afs_int32 ablob, int *ablobOut); - #if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) - extern int afs_readdir(OSI_VC_DECL(avc), struct uio *auio, - afs_ucred_t *acred, int *eofp); diff --git a/112fb94.diff b/112fb94.diff deleted file mode 100644 index 44e0348..0000000 --- a/112fb94.diff +++ /dev/null @@ -1,57 +0,0 @@ -From 112fb94a608a9a810cc9b43fdf762f15277d9eaa Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu, 08 Feb 2024 11:50:16 -0700 -Subject: [PATCH] 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 -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. - -Add a function prototype for init_hckernel_mutex() to afs_osi.h and -remove the prototype from afs_osi.c - -There are no functional changes with this commit. - -Reviewed-on: https://gerrit.openafs.org/15622 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit ccc2af429710104793fb4659b10697cceab182b3) - -Change-Id: Ic5eb4584a980657a01a1cb4411c0c1f03b1f3560 ---- - -diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c -index 6f54c63..e8f852e 100644 ---- a/src/afs/afs_osi.c -+++ b/src/afs/afs_osi.c -@@ -25,11 +25,6 @@ - * -- On HP called from afsc_link. - * -- On SGI called from afs_init. */ - --/* No hckernel-specific header for this prototype. */ --#ifndef UKERNEL --extern void init_hckernel_mutex(void); --#endif -- - afs_lock_t afs_ftf; /* flush text lock */ - - #ifdef AFS_SGI_ENV -diff --git a/src/afs/afs_osi.h b/src/afs/afs_osi.h -index 79c44a9..e3f0e0c 100644 ---- a/src/afs/afs_osi.h -+++ b/src/afs/afs_osi.h -@@ -458,4 +458,9 @@ - # define osi_ShouldDeferRemunlink(avc) 0 - #endif - -+/* No hckernel-specific header for this prototype. */ -+#ifndef UKERNEL -+extern void init_hckernel_mutex(void); -+#endif -+ - #endif /* _AFS_OSI_ */ diff --git a/1e1bf8e.diff b/1e1bf8e.diff deleted file mode 100644 index b1b2d1d..0000000 --- a/1e1bf8e.diff +++ /dev/null @@ -1,80 +0,0 @@ -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] LINUX: Minor osi_vfsop.c cleanup - -- Fix the formatting on afs_mount/afs_get_sb definitions - -- Declare a couple of functions static that are not referenced outside - of this file - -Reviewed-on: https://gerrit.openafs.org/13282 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -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> ---- - -diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c -index b85ab3f..bb49a5c 100644 ---- a/src/afs/LINUX/osi_vfsops.c -+++ b/src/afs/LINUX/osi_vfsops.c -@@ -40,7 +40,7 @@ - - /* Forward declarations */ - static int afs_root(struct super_block *afsp); --int afs_fill_super(struct super_block *sb, void *data, int silent); -+static int afs_fill_super(struct super_block *sb, void *data, int silent); - - - /* -@@ -52,19 +52,22 @@ - #if defined(STRUCT_FILE_SYSTEM_TYPE_HAS_MOUNT) - static struct dentry * - afs_mount(struct file_system_type *fs_type, int flags, -- const char *dev_name, void *data) { -+ const char *dev_name, void *data) -+{ - return mount_nodev(fs_type, flags, data, afs_fill_super); - } - #elif defined(GET_SB_HAS_STRUCT_VFSMOUNT) - static int - afs_get_sb(struct file_system_type *fs_type, int flags, -- const char *dev_name, void *data, struct vfsmount *mnt) { -+ const char *dev_name, void *data, struct vfsmount *mnt) -+{ - return get_sb_nodev(fs_type, flags, data, afs_fill_super, mnt); - } - #else - static struct super_block * - afs_get_sb(struct file_system_type *fs_type, int flags, -- const char *dev_name, void *data) { -+ const char *dev_name, void *data) -+{ - return get_sb_nodev(fs_type, flags, data, afs_fill_super); - } - #endif -@@ -83,7 +86,7 @@ - - struct backing_dev_info *afs_backing_dev_info; - --int -+static int - afs_fill_super(struct super_block *sb, void *data, int silent) - { - int code = 0; -@@ -372,7 +375,7 @@ - * statp is in user space, so we need to cobble together a statfs, then - * copy it. - */ --int -+static int - #if defined(STATFS_TAKES_DENTRY) - afs_statfs(struct dentry *dentry, struct kstatfs *statp) - #else diff --git a/2056ce8.diff b/2056ce8.diff deleted file mode 100644 index 69080a5..0000000 --- a/2056ce8.diff +++ /dev/null @@ -1,71 +0,0 @@ -From 2056ce8ae0d617d663e6181573c982994a1836db Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 15:30:23 -0700 -Subject: [PATCH] rx: Add static attribute to internal functions - -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. - -There are no functional changes in this commit. - -Reviewed-on: https://gerrit.openafs.org/15626 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 55adceba2d561ec4e89235de329782a68e603a11) - -Change-Id: I1b2a6e1c07bd4b75b7b83e177f17865eb903e488 ---- - -diff --git a/src/rx/rx.c b/src/rx/rx.c -index aaec609..d6c52c3 100644 ---- a/src/rx/rx.c -+++ b/src/rx/rx.c -@@ -6513,7 +6513,7 @@ - return -1; - } - --void -+static void - rxi_NatKeepAliveEvent(struct rxevent *event, void *arg1, - void *dummy, int dummy2) - { -@@ -6615,7 +6615,7 @@ - * declared dead; if nothing has been sent for a while, we send a - * keep-alive packet (if we're actually trying to keep the call alive) - */ --void -+static void - rxi_KeepAliveEvent(struct rxevent *event, void *arg1, void *dummy, - int dummy2) - { -@@ -6656,7 +6656,7 @@ - } - - /* Does what's on the nameplate. */ --void -+static void - rxi_GrowMTUEvent(struct rxevent *event, void *arg1, void *dummy, int dummy2) - { - struct rx_call *call = arg1; -@@ -8266,7 +8266,7 @@ - static int rxi_monitor_peerStats = 0; - - --void -+static void - rxi_ClearRPCOpStat(rx_function_entry_v1_p rpc_stat) - { - rpc_stat->invocations = 0; diff --git a/5312d06.diff b/5312d06.diff deleted file mode 100644 index ede79c5..0000000 --- a/5312d06.diff +++ /dev/null @@ -1,49 +0,0 @@ -From 5312d069bc57d200ff65bf968c9bdff0f38fe653 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 09:13:27 -0700 -Subject: [PATCH] afs: Remove afs_osi_UnmaskUserLoop() - -The function afs_osi_UnmaskUserLoop() is not referenced anywhere within -the source tree. - -Remove the function afs_osi_UnmaskUserLoop(). - -The commit: 'darwin-afsdb-handler-signal-mask-20040728' (9728182c00) -introduced the function, but afs_osi_UnmaskUserLoop() has never been -referenced or defined within a header file. - -This function is flagged due to a missing prototype 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. - -Reviewed-on: https://gerrit.openafs.org/15617 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 587cfce29cb4e014e5b8d96e0433c5e7d2c6729a) - -Change-Id: I0fe91a41e8f00773cb1d5976a8c3e39e4415f6bc ---- - -diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c -index 18732d1..6f54c63 100644 ---- a/src/afs/afs_osi.c -+++ b/src/afs/afs_osi.c -@@ -152,14 +152,6 @@ - #endif - } - --void --afs_osi_UnmaskUserLoop(void) --{ --#ifdef AFS_DARWIN_ENV -- afs_osi_fullSigRestore(); --#endif --} -- - /* register rxk listener proc info */ - void - afs_osi_RxkRegister(void) diff --git a/67e48c8.diff b/67e48c8.diff deleted file mode 100644 index 67dddb7..0000000 --- a/67e48c8.diff +++ /dev/null @@ -1,43 +0,0 @@ -From 67e48c84b9971e6b865274408080fbf5ec7ba1ac Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 15:52:57 -0700 -Subject: [PATCH] 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. - -This function is flagged due to a missing prototype 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. - -Add a prototype for RXAFS_ResidencyCmd - -There are no functional changes with this commit - -The function RXAFS_ResidencyCmd() was introduced with commit: -'rename-residency-from-mrafs-to-osd-20090427' (8655541d1e) - -Reviewed-on: https://gerrit.openafs.org/15619 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 1d6cfbc5f627abf3808aae97afb72662301483b5) - -Change-Id: I42d0868b83e119b0c3348a3af8aaf5961c040bb2 ---- - -diff --git a/src/fsint/afsint.xg b/src/fsint/afsint.xg -index 9fe4980..cdcd07a 100644 ---- a/src/fsint/afsint.xg -+++ b/src/fsint/afsint.xg -@@ -664,6 +664,7 @@ - ) = 220; - - #ifdef RPC_CLIENT -+%int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs); - %int RXAFS_ResidencyCmd(struct rx_connection *z_conn, AFSFid *Fid, struct FsCmdInputs *Inputs, struct FsCmdOutputs *Outputs) - %{ - % return RXAFS_FsCmd(z_conn, Fid, Inputs, Outputs); diff --git a/6b20756.diff b/6b20756.diff deleted file mode 100644 index 5f248bf..0000000 --- a/6b20756.diff +++ /dev/null @@ -1,75 +0,0 @@ -From 6b207567af7244a4fc6c314fdc815aa14c4eae09 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 09 Feb 2024 09:01:33 -0700 -Subject: [PATCH] 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. - -In function 'afs_CacheStoreDCaches', - inlined from 'afs_CacheStoreVCache' at - .../src/afs/afs_fetchstore.c:630:14: - .../afs/afs_fetchstore.c:535:17: error: 'ops' may be used - uninitialized [-Werror=maybe-uninitialized] - 535 | code = (*ops->destroy)(&rock, code); - | ~^~~~~~~~~~~~~~ - ...src/afs/afs_fetchstore.c: In function 'afs_CacheStoreVCache': - ...src/afs/afs_fetchstore.c:567:22: note: 'ops' was declared here - 567 | struct storeOps *ops; - | ^~~ - cc1: all warnings being treated as errors - -This is a false positive report by the gcc compiler. - -The function rxfs_storeInit() returns a 0 only when it has successfully -assigned a value to the ops variable, and afs_CacheStoreDcaches() is -only called if the return value from rxfs_storeInit() is 0. - -The ops variable is only used within a block that is within a for loop, -which could leave a stray value if the variable isn't initialized within -that loop. - -Assigning a NULL to ops is sufficient to avoid the compiler error, and -relocating the declaration of the ops variable into the block where it -is actually used ensures that it's always initialized before its use -within the loop. - -Clean up whitespace in the statement that follows the new location for -the ops variable. - -Note, this commit is being added before a commit that adds the static -attribute to the rxfs_storeInit() function which also "fixes" the -compiler error (see: afs: Add static attribute to internal functions). - -Reviewed-on: https://gerrit.openafs.org/15630 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 36e4c02ff27b9d66755b9544778896b9b1e5c391) - -Change-Id: I9d8a07e576c6bf889f8f182c6fc0d34dc997c004 ---- - -diff --git a/src/afs/afs_fetchstore.c b/src/afs/afs_fetchstore.c -index 7b35b8f..63b370d 100644 ---- a/src/afs/afs_fetchstore.c -+++ b/src/afs/afs_fetchstore.c -@@ -564,7 +564,6 @@ - afs_hyper_t *anewDV, afs_size_t *amaxStoredLength) - { - afs_int32 code = 0; -- struct storeOps *ops; - void * rock = NULL; - unsigned int i, j; - -@@ -619,7 +618,8 @@ - ICL_HANDLE_OFFSET(length)); - - do { -- tc = afs_Conn(&avc->f.fid, areq, 0, &rxconn); -+ struct storeOps *ops = NULL; -+ tc = afs_Conn(&avc->f.fid, areq, 0, &rxconn); - - #ifdef AFS_64BIT_CLIENT - restart: diff --git a/743d72f.diff b/743d72f.diff deleted file mode 100644 index cc50e6a..0000000 --- a/743d72f.diff +++ /dev/null @@ -1,48 +0,0 @@ -From 743d72f6b6aba44599099c7cbc879435f9005e3a Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed, 03 Apr 2024 11:36:54 -0600 -Subject: [PATCH] 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 ---- - -diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c -index aa5d5fc..27f73cd 100644 ---- a/src/afs/LINUX/osi_misc.c -+++ b/src/afs/LINUX/osi_misc.c -@@ -155,7 +155,8 @@ - - - /* 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); diff --git a/7cae97b.diff b/7cae97b.diff deleted file mode 100644 index e4e8251..0000000 --- a/7cae97b.diff +++ /dev/null @@ -1,66 +0,0 @@ -From 7cae97b86fbcc4a53967927d6c2cae9dcbc6ac4d Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon, 12 Feb 2024 12:31:30 -0700 -Subject: [PATCH] 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 -d_children/d_sib. - -Add an autoconf test for a d_children member in the dentry structure. - -Define a macro that uses the applicable Linux function for iterating -over a dentry's children. - -Reviewed-on: https://gerrit.openafs.org/15632 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 8e0bbe6a07523dd2e7efb3c9d1b4ad9e19fc9bb7) - -Change-Id: Ief4c334c4ef3e54822e068dcdf654541e86b9176 ---- - -diff --git a/src/afs/LINUX/osi_vcache.c b/src/afs/LINUX/osi_vcache.c -index 897fd37..43644f4 100644 ---- a/src/afs/LINUX/osi_vcache.c -+++ b/src/afs/LINUX/osi_vcache.c -@@ -15,6 +15,14 @@ - - #include "osi_compat.h" - -+#if defined(STRUCT_DENTRY_HAS_D_CHILDREN) -+# define afs_for_each_child(child, parent) \ -+ hlist_for_each_entry((child), &(parent)->d_children, d_sib) -+#else -+# define afs_for_each_child(child, parent) \ -+ list_for_each_entry((child), &(parent)->d_subdirs, d_child) -+#endif -+ - static void - TryEvictDirDentries(struct inode *inode) - { -@@ -312,7 +320,7 @@ - * because 'dp' is an ancestor of 'child'. - */ - struct dentry *child; -- list_for_each_entry(child, &dp->d_subdirs, d_child) { -+ afs_for_each_child(child, dp) { - spin_lock(&child->d_lock); - child->d_time = 0; - spin_unlock(&child->d_lock); -diff --git a/src/cf/linux-kernel-struct.m4 b/src/cf/linux-kernel-struct.m4 -index 2824ec1..5cd346f 100644 ---- a/src/cf/linux-kernel-struct.m4 -+++ b/src/cf/linux-kernel-struct.m4 -@@ -17,6 +17,9 @@ - dnl linux 2.6.16 moved dentry->d_child to dentry->d_u.d_child - dnl linux 3.19 moved it back to dentry->d_child - AC_CHECK_LINUX_STRUCT([dentry], [d_u.d_child], [dcache.h]) -+dnl linux 6.8 uses hlist for dentry children and renamed -+dnl d_subdirs/d_child to d_childern/d_sib -+AC_CHECK_LINUX_STRUCT([dentry], [d_children], [dcache.h]) - AC_CHECK_LINUX_STRUCT([dentry_operations], [d_automount], [dcache.h]) - AC_CHECK_LINUX_STRUCT([group_info], [gid], [cred.h]) - AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h]) diff --git a/81b910a.diff b/81b910a.diff deleted file mode 100644 index c46a241..0000000 --- a/81b910a.diff +++ /dev/null @@ -1,81 +0,0 @@ -From 81b910ab4a0ef0d0b6cd3a1a636fcbcd050c0245 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Tue, 05 Mar 2024 08:37:47 -0700 -Subject: [PATCH] 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 -that removed the sentinel entry in the ctl_table array (e.g. the -"null" entry at the end of the table). - -As of Linux 6.8, including the sentinel entry (.procname =) in the -ctl_table is unnecessary, but doesn't yet break anything. But it is -likely that including the sentinel will start to cause runtime errors in -future Linux versions very soon, so avoid the sentinel when we can, to -avoid possible problems in the future. - -Define a new macro that can be used as the last entry of a ctl_table -that will either add a "null" entry, or nothing. - -There is not a specific build test we can use within configure, so we -must explicitly test the Linux version to decide if we need to use a -sentinel or not when defining the macro. We are selecting 6.8 to match -the version where the Linux kernel is removing the sentinels from the in -kernel filesystems. - -Note: See the Linux merge commits 'Merge tag 'sysctl-6.8-rc1' of -git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux' (a05aea98d4) -for more details behind the staged removal of the sentinels in the -ctl_table structures and the potential future change for removing the -actual check for the sentinel within the Linux kernel. - -Reviewed-on: https://gerrit.openafs.org/15645 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 35c8c1bf0b1cb48178f676ba5bcf16ad59c5a33b) - -Change-Id: I34cb7586003e10a6c7438d7205123d57af30585e ---- - -diff --git a/src/afs/LINUX/osi_sysctl.c b/src/afs/LINUX/osi_sysctl.c -index a0a0398..c1116fc 100644 ---- a/src/afs/LINUX/osi_sysctl.c -+++ b/src/afs/LINUX/osi_sysctl.c -@@ -54,6 +54,14 @@ - # define AFS_SYSCTL_INT(num, perms, var) \ - AFS_SYSCTL_INT2(num, perms, #var, var) - -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0) -+/* end of list sentinel not needed */ -+# define AFS_SYSCTL_SENTINEL -+# else -+/* NULL entry to mark the end of the list */ -+# define AFS_SYSCTL_SENTINEL { .procname = NULL } -+# endif -+ - static struct ctl_table_header *afs_sysctl = NULL; - - static struct ctl_table afs_sysctl_table[] = { -@@ -75,9 +83,7 @@ - AFS_SYSCTL_INT( 13, 0644, afs_cacheBlocks), - AFS_SYSCTL_INT2(14, 0644, "md5inum", afs_md5inum), - -- { -- .procname = 0 -- } -+ AFS_SYSCTL_SENTINEL - }; - # if !defined(HAVE_LINUX_REGISTER_SYSCTL) - static struct ctl_table fs_sysctl_table[] = { -@@ -87,9 +93,7 @@ - .mode = 0555, - .child = afs_sysctl_table - }, -- { -- .procname = 0 -- } -+ AFS_SYSCTL_SENTINEL - }; - # endif - int diff --git a/87ab04a.diff b/87ab04a.diff deleted file mode 100644 index a3d687d..0000000 --- a/87ab04a.diff +++ /dev/null @@ -1,112 +0,0 @@ -From 87ab04acc921794f49084548cf5fc94f6f37f10e Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon, 12 Feb 2024 08:25:47 -0700 -Subject: [PATCH] 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 -existing header files, however either due to missing includes or -preprocessor conditionals that skip the includes, these function -prototypes are not being pulled in. - -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. - -Add the necessary includes to osi_crypto.c and osi_pagecopy.c and -re-arrange the includes in osi_probe.c and osi_syscall.c to ensure that -the function prototypes are present when building the Linux kernel -module. - -Reviewed-on: https://gerrit.openafs.org/15641 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 3683f15278e34e13d7272928eaf666f0acc4e1e9) - -Change-Id: Iac704fc98d0d685358224049f383d68aa7a105f8 ---- - -diff --git a/src/afs/LINUX/osi_crypto.c b/src/afs/LINUX/osi_crypto.c -index ead1916..7f8435c 100644 ---- a/src/afs/LINUX/osi_crypto.c -+++ b/src/afs/LINUX/osi_crypto.c -@@ -25,6 +25,9 @@ - #include <afsconfig.h> - #include "afs/param.h" - -+#include "afs/sysincludes.h" -+#include "afsincludes.h" -+ - #include <linux/random.h> - - int -diff --git a/src/afs/LINUX/osi_pagecopy.c b/src/afs/LINUX/osi_pagecopy.c -index 7142a1b..42f5e38 100644 ---- a/src/afs/LINUX/osi_pagecopy.c -+++ b/src/afs/LINUX/osi_pagecopy.c -@@ -61,6 +61,7 @@ - #include <linux/wait.h> - #include <linux/workqueue.h> - #include <linux/slab.h> -+#include "osi_pagecopy.h" - - static DECLARE_WAIT_QUEUE_HEAD (afs_pagecopy_wq); - static spinlock_t afs_pagecopy_lock; -diff --git a/src/afs/LINUX/osi_probe.c b/src/afs/LINUX/osi_probe.c -index 9b06fa7..be42ecf 100644 ---- a/src/afs/LINUX/osi_probe.c -+++ b/src/afs/LINUX/osi_probe.c -@@ -48,9 +48,13 @@ - #ifdef OSI_PROBE_STANDALONE - # define OSI_PROBE_DEBUG - #endif -+ - #ifndef OSI_PROBE_STANDALONE - # include <afsconfig.h> - # include "afs/param.h" -+ -+# include "afs/sysincludes.h" -+# include "afsincludes.h" - #endif - - #include <linux/version.h> -@@ -60,10 +64,6 @@ - #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) - /* Slightly kludgy, but too bad */ - #define scsi_command_size scsi_command_size_tbl --#endif --#ifndef OSI_PROBE_STANDALONE --# include "afs/sysincludes.h" --# include "afsincludes.h" - #endif - #include <linux/sched.h> - #ifdef HAVE_LINUX_CONFIG_H -diff --git a/src/afs/LINUX/osi_syscall.c b/src/afs/LINUX/osi_syscall.c -index 836491c..5e9e519 100644 ---- a/src/afs/LINUX/osi_syscall.c -+++ b/src/afs/LINUX/osi_syscall.c -@@ -14,6 +14,10 @@ - #include <afsconfig.h> - #include "afs/param.h" - -+#include <linux/module.h> /* early to avoid printf->printk mapping */ -+#include "afs/sysincludes.h" -+#include "afsincludes.h" -+ - #ifdef LINUX_KEYRING_SUPPORT - /* The syscall probing stuff is unnecessary (and is never called) if we have - * keyrings support; we rely on keyrings instead of group ids to track PAGs. -@@ -31,9 +35,6 @@ - - #else /* LINUX_KEYRING_SUPPORT */ - --#include <linux/module.h> /* early to avoid printf->printk mapping */ --#include "afs/sysincludes.h" --#include "afsincludes.h" - #include <linux/unistd.h> /* For syscall numbers. */ - #include <linux/mm.h> - diff --git a/9f052c1.diff b/9f052c1.diff deleted file mode 100644 index 1a45dba..0000000 --- a/9f052c1.diff +++ /dev/null @@ -1,52 +0,0 @@ -From 9f052c137d1184a783c8ac3182c3544b275484f5 Mon Sep 17 00:00:00 2001 -From: Andrew Deason <adeason@sinenomine.net> -Date: Sat, 09 Jan 2021 12:50:03 -0600 -Subject: [PATCH] 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 -stub for it. - -This is useless, but also potentially dangerous, since the stub -routine just returns success, without populating the output arguments. -One of the output arguments is a string, and so if this RPC is -actually run, the rxgen-generated server code will try to xdr_string() -that string. Since we never set it to anything, this will result in -xdr_string trying to dereference a NULL pointer. - -None of this actually happens currently, since the GetDE RPC is -commented out. But to avoid the above situation if it's ever -uncommented, remove the useless SRXAFSCB_GetDE function. - -Reviewed-on: https://gerrit.openafs.org/14488 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -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> ---- - -diff --git a/src/afs/afs_callback.c b/src/afs/afs_callback.c -index e7d8ab5..22edefb 100644 ---- a/src/afs/afs_callback.c -+++ b/src/afs/afs_callback.c -@@ -1636,14 +1636,3 @@ - - return code; - } -- -- --int --SRXAFSCB_GetDE(struct rx_call *a_call, afs_int32 a_index, afs_int32 *addr, -- afs_int32 *inode, afs_int32 *flags, afs_int32 *time, -- char ** fileName) --{ /*SRXAFSCB_GetDE*/ -- int code = 0; /*Return code*/ -- return(code); -- --} /*SRXAFSCB_GetDE*/ diff --git a/ChangeLog b/ChangeLog index 20fc239..3f98394 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,2086 +1,1419 @@ -commit 1a36b929773ea369a5b14a48759949fe6acbe3b7 -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Thu Mar 7 12:48:22 2024 -0500 +commit d8eab602c3279378f344cdde2f14fe05707ac71d +Author: Michael Meffie <mmeffie@sinenomine.net> +Date: Thu May 30 16:56:18 2024 -0400 - Make OpenAFS 1.8.11 + Make OpenAFS 1.8.12pre1 - Update version strings for the 1.8.11 release. - Add final updates to NEWS. + Update version strings for the first 1.8.12 prerelease. - Change-Id: Id66da29a5001f18e8816bcb214f70544474bfaef - Reviewed-on: https://gerrit.openafs.org/15671 - Tested-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Change-Id: I0a314eb7d96183c40c995b9415aaf1c679defee5 + Reviewed-on: https://gerrit.openafs.org/15759 + Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 33fabe9e0b3c8b608bff82f3fda9ba2f8b3775a7 -Author: Andrew Deason <adeason@sinenomine.net> -Date: Tue Nov 13 11:09:52 2018 -0600 +commit 1ccee780e109c06917612390c54978bb13fce767 +Author: Michael Meffie <mmeffie@sinenomine.net> +Date: Thu May 23 20:20:11 2024 -0400 - roken: Use srcdir for roken-post.h + Update NEWS for OpenAFS 1.8.12pre1 - roken-post.h is a source file, not a generated file in the objdir. - Specify $(srcdir) so we can work with objdir builds. + Add news items for the upcoming 1.8.12 pre-release. - Reviewed-on: https://gerrit.openafs.org/13387 + Change-Id: Iab9167e93526f7f5b83a7bc47341a76c8ad54c52 + Reviewed-on: https://gerrit.openafs.org/15753 + Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit 308ee38a30549afd38ad1f83bb537fd6b43513a8 +Author: Mark Vitale <mvitale@sinenomine.net> +Date: Thu May 30 12:54:57 2024 -0400 + + afs: Correct comment typo in DNew() + + Commit aed4a0c4b91c5ce185547e83bfff443f3d3831f9 "afs: avoid panic in + DNew when afs_WriteDCache fails" introduced Doxygen comments for DNew(). + However, due to a cut-and-paste error, the name of the second parameter + is incorrect. + + Correct the Doxygen comments. + + No functional change is incurred by this commit; it is just + documentation. + + Reviewed-on: https://gerrit.openafs.org/15757 Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit abb15d449ca6792d9145c13c01d573ce32545916) + + Change-Id: Ie540b13a040ac47bbaa2f753a9bbd21c046d4b49 + Reviewed-on: https://gerrit.openafs.org/15758 + Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 345a739b7bb6c9c142a2b0fe584fed6c44d6c655) + +commit 4022359253fb6a645b01f99b820b7331c019115a +Author: Mark Vitale <mvitale@sinenomine.net> +Date: Fri Jul 19 14:41:55 2019 -0400 + + afs: avoid panic in DNew when afs_WriteDCache fails - Change-Id: Ie02f0aaf373bebe74b0eaf8969b712c146a462f8 - Reviewed-on: https://gerrit.openafs.org/15638 + afs_WriteDCache may fail for an IO error, or if interrupted (EINTR). + Unfortunately, DNew will panic in this case, crashing the entire + machine. + + In order to avoid an outage in this case, don't panic. Instead, reflect + the error back to the caller of DNew. + + While here, add Doxygen comments to DNew. + + Reviewed-on: https://gerrit.openafs.org/13804 + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Tested-by: BuildBot <buildbot@rampaginggeek.com> + (cherry picked from commit aed4a0c4b91c5ce185547e83bfff443f3d3831f9) + + Change-Id: I634ce4b3c7c8b6029c5236b51f6ab8c0a5463ce9 + Reviewed-on: https://gerrit.openafs.org/15744 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit 837e6a4ad28588f22b4e9ace9bfa4bb4f412485c +Author: Mark Vitale <mvitale@sinenomine.net> +Date: Wed Feb 5 17:49:03 2020 -0500 + + dir: check DNew return code + + Commit 0284e65f97861e888d95576f22a93cd681813c39 'dir: Explicitly state + buffer locations for data' changed DNew and DRead to return a return + code. However, the callers of DNew were not modified to check the new + return code. (This commit applied only to the implementations dealing + with AFS directories, in afs/afs_buffer.c and dir/dir.c. The ubik + implmentations of DNew and DRead, dealing with ubik databases, were not + modified.) + + Modify all (non-ubik) callers of DNew to check the return code. In + addition, modify code as needed so return codes are properly propagated + to the callers. + + While here, add Doxygen comments for AddPage and FindBlobs. + + Reviewed-on: https://gerrit.openafs.org/13801 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit 6bd94fe29d1aa6ce61ba02e681defea79770ccdd) + + Change-Id: I8d036748fa18365b843a69f2f0710eab31aa723d + Reviewed-on: https://gerrit.openafs.org/15743 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit db39f77f0ec931816ba5cc265e87954173b435e2 +Author: Mark Vitale <mvitale@sinenomine.net> +Date: Sun Mar 3 20:20:58 2019 -0500 + + dir: check afs_dir_Create return code in afs_dir_MakeDir + + afs_dir_MakeDir() ignores the return code from afs_dir_Create() for the + '.' and '..' ("dot" and "dotdot") directories. This has been the case + from the earliest implementation (MakeDir() calling Create()) in the + original IBM import. + + Instead, check the return codes to prevent the possibility of creating + malformed directories. + + Reviewed-on: https://gerrit.openafs.org/13800 + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + (cherry picked from commit dcce956df4fc8d368962cb36d8b3c801be69a85a) + + Change-Id: Ib7066ab307fe6ab0e78407566d0fd32bd6827859 + Reviewed-on: https://gerrit.openafs.org/15742 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit 3ff310182926ab783f0f07fa8667d1ebaabbc5de +Author: Andrew Deason <adeason@sinenomine.net> +Date: Thu Apr 25 15:58:49 2024 -0500 + + 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 + Reviewed-on: https://gerrit.openafs.org/15741 + 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> + +commit de7bc4890e4368b88f20e15a7d795fc1c54cef29 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Mon Apr 15 08:22:37 2024 -0600 + + 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 + Reviewed-on: https://gerrit.openafs.org/15739 + 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> + +commit 95e67f9c3e6e605da07081b9521ed2eaa2add648 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri Mar 15 16:24:05 2024 -0600 + + tests: rx/perf wait for server init before client + + The rx/perf test can occasionally fail due to the rxperf server not + being fully initialized before the client started. This can cause test + errors, even without changes to the rx code. + + C_TAP_VERBOSE=1 make check TESTS="rx/perf" + ... + rx/perf + + 1..4 + ok 1 - Started rxperf server + not ok 2 - single threaded client ran successfully + RPC: threads 30, times 1, write bytes 1048576, read bytes... + ok 3 - multi threaded client ran succesfully + ok 4 - Server exited succesfully + FAILED 2 (exit status 1) + + Add a routine that waits for the rx_perf server to become available. + Loop several times trying the connection via the rx_perf client, with + a short delay between retries. If the connection cannot be established, + fail the test. + + Clean up trailing whitespace on a couple of lines. + + Note: This failure was observed in an OpenAFS buildbot worker that + included a make tests, and which would occasionally fail when there was + no rx related code changes. The intermittent failure could be duplicated + on a slower virtual test system, but would not fail on a faster system. + + Thanks to mmeffie@sinenomine.net for the 'wait_for_server' contribution. + + Reviewed-on: https://gerrit.openafs.org/15676 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + (cherry picked from commit 6ace773fdcff0486663a0cc4381d7b6ce2352c04) + + Change-Id: I75c6cd1e4e724d4803b62e2f74e5307cb8fcb14d + Reviewed-on: https://gerrit.openafs.org/15736 + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit 4fc27548be88947ef58e2a3a3654a08ec6c334d9 +Author: Michael Meffie <mmeffie@sinenomine.net> +Date: Tue Apr 9 10:57:26 2024 -0400 + + rxperf: Add -o option to rxperf client + + Add the -o (output) option to the rxperf client specify the output file. + + If not specified, the output is written to stdout, as before. + + Reviewed-on: https://gerrit.openafs.org/15731 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit e6bc50524e1bde199f6643d9784fe331577bee90) + + Change-Id: I94a2f43c70f9cb5236c3ab4c5d2de66906eb68b3 + Reviewed-on: https://gerrit.openafs.org/15735 + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Andrew Deason <adeason@sinenomine.net> Tested-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 47c4fb427a02809a73a8f7024e49ff5f58d2be06 -Author: Stephan Wiesand <stephan.wiesand@desy.de> -Date: Thu Aug 3 17:35:02 2023 +0200 - - Make OpenAFS 1.8.11pre1 - - Update version strings for the first 1.8.11 prerelease. - - Change-Id: I161717ae5670a3261ebbc1fe8fe9c13c18868e74 - Reviewed-on: https://gerrit.openafs.org/15527 - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - -commit 85d4e2dce876d4bf8b7ebbdafb8b5d357badca2f -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Mon Aug 21 13:23:10 2023 -0400 - - Update NEWS for 1.8.11 pre-release - - Add NEWS items for the upcoming 1.8.11 release. - - Change-Id: I0b690b0aa273c05f33e68e1ba086863703266b3b - Reviewed-on: https://gerrit.openafs.org/15551 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - -commit 1f63ffef477d63984dbd65bc83955c0e36f9fc44 -Author: Indira Sawant <indira.sawant@ibm.com> -Date: Wed Dec 20 18:20:53 2023 -0800 - - util: Clear owner when unlocking recursive mutex - - A race condition where the pthread_recursive_mutex_t::owner that is maintained - by AFS doesn’t match with the thread that is trying to unlock. - - This leads to AFS file server and ptserver crash due to assertion failure - where it was trying to unlock the grmutex. - - We saw the race more often when our customer migrated their machines from - Power8 to Power9 systems and increased the SMT value from 2 to 4. - - fileserver Assertion failed! file keys.c, line 911. - ptserver Assertion failed! file userok.c, line 78. - - File: keys.c - - 889 int - 890 afsconf_GetKeyByTypes(struct afsconf_dir *dir, afsconf_keyType type, - 891 int kvno, int subType,struct afsconf_typedKey **key) - 892 { - 893 int code = 0; - 894 struct subTypeList *subTypeEntry; - 895 - 896 LOCK_GLOBAL_MUTEX; - 897 - … - 910 out: - 911 UNLOCK_GLOBAL_MUTEX; <<<< - 912 return code; - 913 } - - Consider a following situation, - cpu0 , cpu1 and T0, T1 and T2 are the cpus and timestamps respectively, - - T0: thread1 locks grmutex performs some operations and unlocks the same, - thus has itself set as pthread_recursive_mutex_t::owner. Since presently we do - not reset it, thus, pthread_recursive_mutex_t::owner = thread0. - T1: thread0 starts on cpu0. - T2: thread1 starts on cpu1. - T3: thread0 tries to lock AFS grmutex and acquires corresponding pthread_mutex, - now before thread0 updates pthread_recursive_mutex_t::owner, a context switch - happens. - T3: thread1 on cpu1 tries to acquire grmutex and sees itself as the - pthread_recursive_mutex_t::owner, possibly as it was not reset and updated yet. - So thread1 thinks itself as the owner and proceeds. - T4: thread0 updates the pthread_recursive_mutex_t::owner this time it is also - synced across the cpu caches. - T5: thread1 tries to unlock the grmutex and crashes because now it’s not the - owner of the mutex. - - Debugging: - - We implemented a circular log to store certain values related to grmutex which - helped in debugging us this further. - - ({ \ - time_t t; \ - time(&t); \ - LOG_EVENT("%s: Unlocking TID %u: %s:%d owner %lu " \ - "locked %d pthread_self %u times_inside %d\n", \ - ctime(&t), (unsigned)grmutex.mut.__data.__owner,\ - __func__ , __LINE__, \ - grmutex.owner, grmutex.locked, (unsigned)pthread_self(), \ - grmutex.times_inside); \ - opr_Verify(pthread_recursive_mutex_unlock(&grmutex)==0); \ - }) - - $614 = "Mon Sep 11 19:35:34 2023\n: Locking TID 136896: - afsconf_GetKeyByTypes:896 owner 140735030161776 locked 1 - pthread_self 2305880432 times_inside 1\n\000 2\n", - - $615 = "Mon Sep 11 19:35:34 2023\n: Unlocking TID 136896: - afsconf_IsLocalRealmMatch:602 owner 140735030161776 locked 1 - pthread_self 1836773744 times_inside 2\n", - - $617 = "Mon Sep 11 19:35:34 2023\n: Unlocking TID 136896: - afsconf_GetKeyByTypes:911 owner 140735030161776 locked 1 - pthread_self 2305880432 times_inside 1\n\000\061\n", - - Solution: - - This problem was resolved after resetting thread_recursive_mutex_t::owner in - global mutex unlock function. - - Thanks to Todd DeSantis for helping with debugging, review and verification of - this problem. - - Signed-off-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-on: https://gerrit.openafs.org/15604 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit e4fda3481dc9ec651377493afbc95bd40f4f1fb2) - - Change-Id: I400892121d1b1f63adcd6848e774ede1c4ec5da9 - Reviewed-on: https://gerrit.openafs.org/15609 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - -commit 6edf9d350c6ffd9d5e51fb8106701c1bc2f6a4d9 +commit dfb6b53a6802e90f6bc2cd3cd39da467ce8e4488 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Nov 9 10:38:29 2023 -0700 +Date: Wed Apr 3 11:36:54 2024 -0600 - Linux 6.7: convert to inode a/mtime accessor funcs + Linux: Define afs_thread_wrapper() as static - The Linux 6.7 commit "fs: new accessor methods for atime and mtime" - (077c212f03) is a follow up to the Linux 6.6 commit "fs: add ctime - accessors infrastructure" (9b6304c1d5) + When building against a Linux 6.8 kernel, functions that are missing + prototypes or declarations are flagged. - With the above 6.7 commit, the inode's i_atime and i_mtime are renamed - to __i_atime and __i_mtime and accessing these members should use the - new accessor functions. + 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. - This commit is similar to the OpenAFS commit "Linux 6.6: convert to - ctime accessor functions" (072c7934cd1) + 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). - Add autoconf tests to detect when we need to use the new accessors and - introduce new wrapper functions to get and set an inode's atime and - mtime. + When building against a kernel with CONFIG_WERROR=y, the build fails. - Note, unlike the (072c7934cd1) commit, we need to add support for - reading an inode's atime and mtime, so this commit has the getters for - the atime and mtime members. + This is an openafs-1.8.x specific commit. - Reviewed-on: https://gerrit.openafs.org/15597 - Tested-by: BuildBot <buildbot@rampaginggeek.com> + 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: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 8962767a7e27f8db9dc9001999edf573be706d66) - - Change-Id: If5f58df74f37749b7dfdc52172a8e9573d849ecd - Reviewed-on: https://gerrit.openafs.org/15600 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit fd527549c2d2b29a955f8c0427ac67c5d49ef38c -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Fri Sep 15 15:01:56 2023 -0400 - - dir: Introduce struct DirEntryFlex - - The directory package as implemented in AFS-2 allocates space for each - directory entry as a DirEntry struct followed by 0-8 contiguous - DirXEntry structs, as needed. This is implemented by: - - - afs_dir_NameBlobs calculates the number of blocks needed - - FindBlobs allocates and returns index of entry - - afs_dir_GetBlob returns pointer to 1st DirEntry struct - - After this, we populate DirEntry (and any contiguous DirXEntry blocks) - with open code. Most existing code writes the entry's name via a string - copy operation to DirEntry->name, which is only 16 bytes long. - Therefore, for dir entry names that are 16 bytes or longer, OpenAFS - routinely does string copies that look like buffer overruns. This has - not previously caused problems because the OpenAFS code has arranged for - a sufficiently large amount of contiguous memory to be available. - However, this remains undefined behavior in the C abstract virtual - machine; thus compilers are not required to produce safe operation. - - Recent changes in the OpenAFS build chain have made this approach no - longer viable: - - 1) Linux 6.5 commit df8fc4e934c12b 'kbuild: Enable - -fstrict-flex-arrays=3' modified the hardening of several kernel - string operations when running with CONFIG_FORTIFY_SOURCE=y. - - 2) gcc 13 commit 79a89108dd352cd9288f5de35481b1280c7588a5 - '__builtin_dynamic_object_size: Recognize builtin' provides some - enhancements to _builtin_object_size. The Linux commit above will now - use these when the kernel is built with gcc 13. - - When OpenAFS is built under Linux 6.5 or higher and gcc 13 or higher, - the hardened strlcpy will BUG for directory entry names longer than 16 - characters. - - Since there are multiple places where OpenAFS writes directory names, - there are several symptoms that may manifest. However, the first one is - usually a kernel BUG at cache manager initialization if running with - afsd -dynroot _and_ there are any cell names 15 characters or longer in - the client CellServDB. (A 15-character cellname reaches the 16 - character limit when -dyrnoot adds the RW mountpoint ".<cellname>".) - - Address this by using flexible arrays (standardized with C99). A - flexible array is a variable-length array that is declared with no size - at all, e.g., name[]. - - Create an autoconf test to determine whether the compiler supports - flexible arrays. - - Create a new struct DirEntryFlex. If the compiler supports - flexible arrays, define name[]; otherwise retain the name[16] - definition. - - Whenever we write a directory name, use DirEntryFlex so that any - hardening will be satisfied that there is sufficient space for the name. - - However, the actual guarantee that this is true is still provided by the - OpenAFS directory routines mentioned above - all of these remain - unchanged. - - The DirEntry struct remains unchanged for continued use in OpenAFS, as - well as for any out-of-tree users of the directory package. - - Reviewed-on: https://gerrit.openafs.org/15573 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - (cherry picked from commit e2ec16cf941b0aadfbd54fc2f52edd58b62e232d) - - Change-Id: Ibf6d3549ba1e941c957e98ef4875152d865c9358 - Reviewed-on: https://gerrit.openafs.org/15599 - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - -commit 9ff262312619f25ca4b36e853e6f79782108f21b -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Mon Sep 18 18:41:23 2023 -0400 - - dir: Allow 256-byte directory entry names in salvager - - Since the original IBM code import, the DirOK test for directory entry - names has been off-by-1; it says that directory names of length MAXENAME - 256 are "too-long". - - Modify DirOK to properly validate directory entry names during salvage. - While here, remove MAXENAME in favor of AFSNAMEMAX. - - Reviewed-on: https://gerrit.openafs.org/15574 - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - (cherry picked from commit 319c1ca87af66425048e498e300e7d8e714fc98a) - - Change-Id: Ie4355f9867372f99e4cb283a209953fcda949397 - Reviewed-on: https://gerrit.openafs.org/15598 - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - -commit 56763a199f92101c35d6b9b733302cb08fe0cdbe +commit d1a42401fddc51bd2f16da39dfebe0f60fc670ad Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Nov 2 09:46:34 2023 -0600 +Date: Thu Feb 29 17:58:17 2024 -0700 - Linux: Fix to use time_t instead of time64_t + Linux: Remove weak attribute for key_type_keyring - In commit 'Linux 6.6: convert to ctime accessor functions' (072c7934cd) - the functiom afs_inode_set_ctime was defined to use time64_t when it - should have used a time_t as the data type for the sec parameter. - See the commit 'LINUX 5.6: define time_t and use timespec/timespec64' - (78049987aa). + 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. - The time64_t data type was introduced in Linux 3.17. A build failure - will occur when building on kernels prior to Linux 3.17. + 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). - Reviewed-on: https://gerrit.openafs.org/15595 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + 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> - (cherry picked from commit a2f77c53073b3999887eb689f396a414b191aba7) - - Change-Id: Ie14d9ebbcce6a5d2db0fc38eb4d97aa30f574da9 - Reviewed-on: https://gerrit.openafs.org/15596 - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> 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> - -commit 519918dfed42fd3dc338facdb88f8be205a00383 -Author: Ganesh Chaudhari <gangovind@in.ibm.com> -Date: Fri Oct 20 16:16:16 2023 +0530 - - macos: Add support for MacOS 14.X (Sonoma) - - This commit introduces the new set of changes/ files required - to successfully build and package the OpenAFS source code on - MacOS 14.X "Sonoma". - - Signed-off-by: GANESH CHAUDHARI <gangovind@in.ibm.com> - Reviewed-on: https://gerrit.openafs.org/15591 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Tested-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit f379e1b255ebb5094c5acc11a9234d5a321818c2) - - Change-Id: I913bf9ae5eda0ae571c727e95f9f3ac113df9f64 - Reviewed-on: https://gerrit.openafs.org/15602 - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Ganesh G. Chaudhari <gangovind@in.ibm.com> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 88d3cbbf7e86cc628011c0ba414225400136d57a -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Thu Jan 26 19:30:04 2023 +0100 - - CellServDB update 31 October 2023 - - Update all three copies in the tree, and the rpm specfile. - - Reviewed-on: https://gerrit.openafs.org/15601 Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 26fdb47dba4852f3525db00c6eb72863d92d74fa) + (cherry picked from commit 2f260825b96b76556aba82fc364c841357a23a7d) - Change-Id: I4468ff651da06236543e0c7ac7aee247ed03cfa3 - Reviewed-on: https://gerrit.openafs.org/15603 + 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: Ralf Brunckhorst <rbrunckhorst@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 4f1d8104d17d2b4e95c7abaf5498db6b80aefa8f +commit 7b4802efaf29ef76969c8b931a31e93dd4fbb000 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon Sep 18 12:23:01 2023 -0600 +Date: Mon Mar 11 09:05:33 2024 -0600 - Linux 6.6: Pass request_mask to generic_fillattr + Linux 6.8: Use roken's strlcpy() in kernel module - The Linux 6.6 commit: "fs: pass the request_mask to generic_fillattr" - (0d72b92883) added an additional parameter to Linux's - generic_fillattr() function. + The Linux 6.8 commit 'string: Remove strlcpy()' (d26270061a) removed the + the strlcpy function from the Linux kernel. The replacement function, + strscpy(), cannot be used as a drop-in replacement as its currently a + Linux kernel specific function and there are differences in the returned + value. - 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. + We can use roken's strlcpy() (provided in roken/strlcpy.c). - 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(). + Create a configure test to that defines its own strlcpy() to test + if the kernel doesn't provide one itself. Note, we need to use a + different function signature for strlcpy() from what the kernel might + have otherwise the test build succeeds when the kernel does provide a + strlcpy(). - Reviewed-on: https://gerrit.openafs.org/15561 + Update the OpenAFS kernel specific roken.h to define the prototype for + strlcpy when it's not present in the Linux kernel. We need to match the + defines used in the 'real' roken.h so the roken/strlcpy.c can build + properly. Add defines for ROKEN_LIB_FUNCTION, ROKEN_LIB_CALL and + ROKEN_LIB_VARIABLE to the kernel roken.h + + Update Linux's osi_machdep.h to include roken.h so the strlcpy protoype + is available. + + Update the Linux MakefileProto to include the strcpy-kernel object + when building the kernel module. + + Reviewed-on: https://gerrit.openafs.org/15646 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + 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> + +commit 6333fae573f8a7b7656e9c1b05d445a37b951b88 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Tue Mar 5 08:37:47 2024 -0700 + + 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 + that removed the sentinel entry in the ctl_table array (e.g. the + "null" entry at the end of the table). + + As of Linux 6.8, including the sentinel entry (.procname =) in the + ctl_table is unnecessary, but doesn't yet break anything. But it is + likely that including the sentinel will start to cause runtime errors in + future Linux versions very soon, so avoid the sentinel when we can, to + avoid possible problems in the future. + + Define a new macro that can be used as the last entry of a ctl_table + that will either add a "null" entry, or nothing. + + There is not a specific build test we can use within configure, so we + must explicitly test the Linux version to decide if we need to use a + sentinel or not when defining the macro. We are selecting 6.8 to match + the version where the Linux kernel is removing the sentinels from the in + kernel filesystems. + + Note: See the Linux merge commits 'Merge tag 'sysctl-6.8-rc1' of + git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux' (a05aea98d4) + for more details behind the staged removal of the sentinels in the + ctl_table structures and the potential future change for removing the + actual check for the sentinel within the Linux kernel. + + Reviewed-on: https://gerrit.openafs.org/15645 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) + (cherry picked from commit 35c8c1bf0b1cb48178f676ba5bcf16ad59c5a33b) - Change-Id: I5cddc56c5e605a6c5e4f7f3691eafec8ca589d2c - Reviewed-on: https://gerrit.openafs.org/15590 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> + 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: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 6413fdbc913834f2884989e5811841f4ccea2b5f -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Oct 5 14:44:49 2023 -0600 - - 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> -commit 6de0a646036283266e1d4aeb583e426005ca5ad4 +commit 18a2a932df9c1b6b3c7513a6c161d4259f052ca9 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Tue Aug 29 14:58:10 2023 -0600 +Date: Mon Feb 12 12:31:30 2024 -0700 - linux: Replace fop iterate with fop iterate_shared + Linux 6.8: use hlist iteration for dentry children - The Linux 6.5 commit: - 'vfs: get rid of old '->iterate' directory operation' (3e32715496) - removed the filesystem_operations iterate method. The replacement - method, iterate_shared, was introduced with the Linux 4.6 commit: - 'introduce a parallel variant of ->iterate()' (6192269444) + Linux 6.8 commit 'dentry: switch the lists of children to hlist' + (da549bdd15) replaces the dentry lists d_subdirs/d_child with the hlist + d_children/d_sib. - The above commits indicate that the iterate_shared is an "almost" - drop-in replacement for iterate. The vfs documentation for - iterate_shared has caveats on the implementation (serializing in-core - per-inode or per-dentry modifications and using d_alloc_parallel if - doing dcache pre-seeding). A wrapper is provided to assist filesystems - with the migration from iterate to iterate_shared. Until it can be - verified that afs_linux_readdir meets the above requirements, we will - use the wrapper (ref 3e32715496 commit) + Add an autoconf test for a d_children member in the dentry structure. - Add configure tests for the iterate_shared file_operations member and - for the wrap_directory_iterator function. + Define a macro that uses the applicable Linux function for iterating + over a dentry's children. - Update osi_vnodeops.c to use iterate_shared and the wrapper if they are - both available. - - Reviewed-on: https://gerrit.openafs.org/15528 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Reviewed-on: https://gerrit.openafs.org/15632 Reviewed-by: Andrew Deason <adeason@sinenomine.net> 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: 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> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Tested-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 5b647bf17a878271e1ce9882e41663770ee73528 +commit fef1fc6f740c6f7395cf51ce99ed296652579c7d Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed Sep 6 11:41:55 2023 -0600 +Date: Tue Mar 5 07:40:08 2024 -0700 - LINUX: Pass an array of structs to register_sysctl + rxgen: Declare generated PKG_OpCodeStats() - 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. + The function {PKG}_OpCodeStats() is generated by rxgen, however a + prototype for the function is not generated. - This change only affects the autoconf test used to determine if Linux - provides register_sysctl. + The functions h_ProcMainBody_setup() and h_HeadofOldStyleProc_setup() + in rpc_parse.c emit prototypes for {PKG}_ExecuteRequest() and + {PKG}_TranslateOpCode(), but do not emit a prototype for + {PKG}_OpCodeStats(). - Update the autoconf test for register_sysctl to use an actual ctl_table - structure for the 2nd parameter instead of a NULL. + Update rxgen to emit a function prototype for {PKG}_OpCodeStats() in the + generated header file. - 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 + Use a variable to point to "PackagePrefix[PackageIndex]" in + h_ProcMainBody_setup to improve readability. + + {PKG}_OpCodeStats(), specifically RXSTATS_OpCodeStats(), is flagged due + to a missing prototype 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. + + Reviewed-on: https://gerrit.openafs.org/15631 Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> 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: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 2ebafdc5349c7ae4418a98c244b6959388c50bf2 +commit 57e0192a690942c2a0f4f1f685cfadf2106b763a Author: Andrew Deason <adeason@sinenomine.net> -Date: Wed Aug 2 16:02:57 2023 -0500 +Date: Tue Dec 7 15:43:35 2021 -0600 - rx: Check for callNumber before NULL server call + rxgen: Declare generated PKG_TranslateOpCode() - In rxi_ReceiveServerCall(), we compare the callNumber in the given - packet to the callNumber on the conn's channel. If the packet's - callNumber is smaller, it indicates the packet is for an earlier call - that has since ended, and we ignore it. + Ever since commit 5c77a6ca (rxgen: add *TranslateOpcode functions to + XDR code), rxgen generates a PKG_TranslateOpCode function in the + relevant .xdr.c source, which can translate an RPC opcode into the RPC + name. But we never declare this function in a header file, making it + impossible to use without compiler warnings (unless the caller + declares the function itself). - However, we perform this check after checking whether we need to - allocate a new call (conn->call[channel] is NULL), or use an existing - call. If we allocate a new call, we don't check the conn's callNumber - at all, and unconditionally set it to the callNumber in the packet. + To make it possible to actually use this function, declare this + function in the generated header file. - This means that if a server call ends and is successfully - rxi_FreeCall()'d, the server will accept any callNumber on the same - channel. If the server sees an old DATA packet from an earlier call - after this happens, it means the server can effectively re-run an RPC - that has already completed successfully, or that the client has - already seen fail. - - A server can see a DATA packet for an old call under a variety of - situations, which is, after all, why we check it (dup'd/delayed - packets, the client could still be trying to run an old call, etc). - Seeing one for a freed call is less likely since that usually requires - more time to have passed, but is still possible. - - Checking the callNumber was effectively moved in commit 99b43273c0 - (rx: prevent connection channel assignment race) in the 1.7.x series. - This commit makes the check similar to how it was in 1.6.x and - earlier. - - Reviewed-on: https://gerrit.openafs.org/15524 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Reviewed-on: https://gerrit.openafs.org/14871 + Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 448e82b45268e8b339bdaa6ab0cd5858a04250a9) - - Change-Id: I4a0c8a578cef32da8411bd33610aed9c67dc47c6 - Reviewed-on: https://gerrit.openafs.org/15562 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 00f13c45d637249a0d698458e08c1b8e2da8e219 -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed Jun 21 13:56:29 2023 -0600 - - cf: Use static allocated structs for cf tests - - The Linux kernel module build will issue a warning when a stack frame - exceeds a specific size via the -Wframe-larger-than= compiler flag (with - a default size of 2048 bytes on most architectures). - - At least one distribution, Oracle's Linux with the Unbreakable - Enterprise Kernel (UEK), hardens this check by changing the warning to - an error (-Werror=frame-larger-than=). - - Several of the openafs autoconf tests use objects that are allocated on - the stack when testing for structures, or members of a structure. - When the warning is changed to an error, configure fails in several - locations when testing against Linux's task_struct structure, which - exceeds 2048 bytes in size. - - openafs/conftest.dir/conftest.c:72:1: error: the frame size of 9984 - bytes is larger than 2048 bytes [-Werror=frame-larger-than=] - - Update the autoconf Linux tests that allocate structures to use a - statically allocated structure instead of one allocated on the stack. - - Reviewed-on: https://gerrit.openafs.org/15477 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> - (cherry picked from commit a939eb7ffd2517a127aeb02ebd962e00e9acb960) - - Change-Id: Ib1d5b8218981890751187fbcf724dd6643356e98 - Reviewed-on: https://gerrit.openafs.org/15549 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 4212d485cb2e0b1fa06b73bd21ca38ea8e3a8fa6 +commit 4c92936aefede187e57a9a433c0c192af2fc5e84 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu May 25 15:51:10 2023 -0600 +Date: Fri Jan 12 15:30:23 2024 -0700 - clang: Don't redefine printf in salvage.c + rx: Add static attribute to internal functions - The Gentoo distribution changed the default fortify_source setting for - clang (to match the default being used for gcc). This change causes the - following build error: + When building against a Linux 6.8 kernel, functions that are missing + prototypes or declarations are flagged. - src/dir/salvage.c:26:9: error: 'printf' macro redefined - [-Werror,-Wmacro-redefined] - ^ - /usr/include/bits/stdio2.h:89:11: note: previous definition is here - ^ - 1 error generated. + 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. - If the fortify_source level is greater than 1, glibc can define printf - as a macro. The clang compiler has a default check for macro - redefinitions (-Wmacro-redefined), while gcc does not provide this - option. + 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). - Remove the: - #define printf Log - in src/dir/salvage.c and update callers to use Log() instead of - printf(). + When building against a kernel with CONFIG_WERROR=y, the build fails. - Clean up lines that split the call to Log and its first parameter. Fix - the indentation for Log's parameters. + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15626 + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + 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> + +commit 195f154aaf2d8aff1f6debdb47c0db8f07cb5c5e +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu Feb 29 17:53:31 2024 -0700 + + afs: Add static attribute to internal functions + + 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. + + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15625 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + 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> + +commit 90b8dcff36e9b03ec01550ad1a070a0ab7db8c46 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri Feb 9 09:01:33 2024 -0700 + + 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. + + In function 'afs_CacheStoreDCaches', + inlined from 'afs_CacheStoreVCache' at + .../src/afs/afs_fetchstore.c:630:14: + .../afs/afs_fetchstore.c:535:17: error: 'ops' may be used + uninitialized [-Werror=maybe-uninitialized] + 535 | code = (*ops->destroy)(&rock, code); + | ~^~~~~~~~~~~~~~ + ...src/afs/afs_fetchstore.c: In function 'afs_CacheStoreVCache': + ...src/afs/afs_fetchstore.c:567:22: note: 'ops' was declared here + 567 | struct storeOps *ops; + | ^~~ + cc1: all warnings being treated as errors + + This is a false positive report by the gcc compiler. + + The function rxfs_storeInit() returns a 0 only when it has successfully + assigned a value to the ops variable, and afs_CacheStoreDcaches() is + only called if the return value from rxfs_storeInit() is 0. + + The ops variable is only used within a block that is within a for loop, + which could leave a stray value if the variable isn't initialized within + that loop. + + Assigning a NULL to ops is sufficient to avoid the compiler error, and + relocating the declaration of the ops variable into the block where it + is actually used ensures that it's always initialized before its use + within the loop. + + Clean up whitespace in the statement that follows the new location for + the ops variable. + + Note, this commit is being added before a commit that adds the static + attribute to the rxfs_storeInit() function which also "fixes" the + compiler error (see: afs: Add static attribute to internal functions). + + Reviewed-on: https://gerrit.openafs.org/15630 + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + 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> + +commit 09f9660fbbb4f3c20ba9f2283169818372c3f474 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Wed Feb 7 19:34:29 2024 -0700 + + 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 + implement rxk_NewSocketHost() do not have a prototype (but when the + rx_kcommon.c implementation is used it does have a prototype, since + rx_kcommon.c is the "referencing .c file"). + + Add the prototype for rxk_NewSocketHost() to rx_prototypes.h and + remove the prototype from rx_kcommon.c + + The prototypes for the functions rx_DebugOnOff() and rx_StatsOnOff() + are defined within rx_prototypes.h, but are within a preprocessor + conditional for AFS_NT40_ENV, however the implementation for these + 2 functions do not have the preprocessor conditional. + + Rearrange the prototypes for rx_DebugOnOff() and rx_StatsOnOff() so they + are outside the AFS_NT40_ENV preprocessor conditional. + + 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. + + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15624 + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> + Tested-by: Benjamin Kaduk <kaduk@mit.edu> + 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> + +commit 53752b01bc734f4bd5f5da24ac116c7fcb2ac07f +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Mon Feb 12 09:43:29 2024 -0700 + + 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 + afscbint.h (which is generated by rxgen). + + Remove the protoypes for the SRXAFSCB_* functions from afs_prototypes.h + as they are redundant and are currently out of sync (the prototypes + for SRXAFSCB_GetCellByNum() and SRXAFSCB_TellMeAboutYourself() are + not present in afs_prototypes.h). Also remove a redundant prototype for + afs_RXCallBackServer() which was prototyped both before and in the + middle of the SRXAFSCB* prototypes. + + Since afs_callback.c only pulled in afs_prototypes.h and not afscbint.h, + add an include for afscbint.h to ensure that the all the prototypes for + the SRXAFSCB_* functions are present. + + The 2 functions listed above 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. + + Reviewed-on: https://gerrit.openafs.org/15644 + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + Tested-by: Benjamin Kaduk <kaduk@mit.edu> + 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> + +commit 96932160fa8ef1cf4422e9e1d1ca2a449f8ffe93 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Mon Feb 12 08:59:32 2024 -0700 + + 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. + + Move these prototypes into afs_prototypes.h so that the prototypes are + available to both the caller and the implementation. + + Because the file holding the implementation does not have a prototypes, + afs_xioctl() is being flagged 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 Linux kernel with CONFIG_WERROR=y, the build + fails. + + Note that the function afs_xioctl() has platform specific + implementations. + + Reviewed-on: https://gerrit.openafs.org/15643 + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + 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> + +commit c04c2d07226583846c3949a4855c7db4316438da +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu Feb 15 09:00:05 2024 -0700 + + afs: Move function prototypes into headers + + Several .c files contain external function prototypes, while the + implementing files do not have these prototypes. + + Move these prototypes into header files so that the prototypes are + available to both the caller and the implementation. + + Because the file holding the implementation does not have prototypes, + these functions are flagged 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. + + Add the prototypes for the following to afs_prototypes.h: + exporter_add + afs_syscall (AFS_LINUX_ENV) + BlobScan + + Remove the prototypes from the .c files where they are referenced. + + Reviewed-on: https://gerrit.openafs.org/15642 + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Mark Vitale <mvitale@sinenomine.net> + 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> + +commit 8b516820abf1edace60276152e9ed18a0b30fc13 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Mon Feb 12 08:25:47 2024 -0700 + + 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 + existing header files, however either due to missing includes or + preprocessor conditionals that skip the includes, these function + prototypes are not being pulled in. + + 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. + + Add the necessary includes to osi_crypto.c and osi_pagecopy.c and + re-arrange the includes in osi_probe.c and osi_syscall.c to ensure that + the function prototypes are present when building the Linux kernel + module. + + Reviewed-on: https://gerrit.openafs.org/15641 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + 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> + +commit 25e17fe7196fd4a46e6a9408d135812ca53ddf80 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu Feb 8 11:50:16 2024 -0700 + + 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 + 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. + + Add a function prototype for init_hckernel_mutex() to afs_osi.h and + remove the prototype from afs_osi.c There are no functional changes with this commit. - Reviewed-on: https://gerrit.openafs.org/15462 + Reviewed-on: https://gerrit.openafs.org/15622 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit df7f841f3852b5417a1d4ebc981780f2d7651b60) + (cherry picked from commit ccc2af429710104793fb4659b10697cceab182b3) - Change-Id: I9a7d9e70184eb1dbd04f2b1a0e9a668138baaabe - Reviewed-on: https://gerrit.openafs.org/15548 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> + 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: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit d19554327fa92cee4eb2d914304fed02e20543e7 +commit b1c93f13870e24795b857cb483320871703d00e8 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Tue Sep 24 15:59:47 2019 -0600 +Date: Wed Feb 7 15:25:10 2024 -0700 - Retire the AFS_PTR_FMT macro + Linux 6.8: Add function prototypes for krb5 - Originally '%x' was commonly used as the printf specifier for formatting - pointer values. + 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 + heimdal/krb5 (e.g. crypto.c). - Commit 37fc3b01445cd6446f09c476ea2db47fea544b7d introduced the - AFS_PTR_FMT macro to support platform-dependent printf format specifiers - for pointer representation. This macro defined the format specifier as - '%p' for Windows, and '%x' for non-Windows platforms. + 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). - Commit 2cf12c43c6a5822212f1d4e42dca7c059a1a9000 changed the printf - pointer format specifier from '%x' to '%p' on non-Windows platforms as - well, so at this point '%p' is the printf pointer format specifier for - all supported platforms. + When building against a kernel with CONFIG_WERROR=y, the build fails. - Since the AFS_PRT_FMT macro is no longer platform-dependent, and all C89 - compilers support the '%p' specifier, retire the macro to simplify the - printf format strings. + We cannot modify the external source files, however there is the local + OpenAFS include file, krb5_locl.h, that does contain OpenAFS specific + changes. - Reviewed-on: https://gerrit.openafs.org/13830 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Add declarations to krb5_locl.h for the functions defined in the + heimdal/krb5 source. + + There are no functional changes with this commit. + + Reviewed-on: https://gerrit.openafs.org/15621 Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - (cherry picked from commit a133f1b1e7eb605c36ac16a6ed115bef03e8a004) - - [cwills@sinenomine.net] As part of the 1.8.x pullup, remove AFS_PTR_FMT - from the files in src/xstat - - Change-Id: I1fbb6a9b1c957adf45ca528d744a373809d1b780 - Reviewed-on: https://gerrit.openafs.org/15547 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit e644e2fc7db3cf9186184fc3586b8c8320f458a5 -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Sun Mar 3 20:51:45 2019 -0500 - - dir: check afs_dir_MakeDir return code in DirSalvage - - Since the original IBM import, DirSalvage() has ignored the return code - from afs_dir_MakeDir() (f.k.a. MakeDir). This has been safe because, as - the comment states, afs_dir_MakeDir returns no (non-zero) error code. - - In preparation for a future commit, add a check for the return from - afs_dir_MakeDir and remove the comment. - - Reviewed-on: https://gerrit.openafs.org/13799 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 0639ca8d221231309d59882a63e5a95a10cfdac3) - - Change-Id: I13def0fdda5911b16704ba426c4fe2df389311a2 - Reviewed-on: https://gerrit.openafs.org/15546 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit a367bed24fdc519b78e252e7a48f8d0666b1c7dd -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Thu Jan 30 14:04:05 2020 -0500 - - dir: distinguish logical and physical errors on reads - - The directory package (src/dir) salvage routines DirOK and DirSalvage - check a global variable 'DErrno' to distinguish logical errors (e.g. - short read) from physical errors (e.g. EIO). However, since the - original IBM import, this logic has not worked correctly because there - is no longer any code that sets the value of DErrno - its value is - always zero. - - Instead, modify all implementations of ReallyRead to optionally return - the errno for low-level IO errors. - - Also, create a new userspace-only variant - DReadWithErrno() - of the - src/dir/buffer.c version of DRead (the version called by DirOK and - DirSalvage, and the only caller of ReallyRead) to return the ReallyRead - errno upon request. - - Also create an analogous variant of afs_dir_GetBlobs, - afs_dir_GetBlobsWithErrno(). - - Finally, convert DirOK and DirSalvage to use the new variants and - replace DErrno with equivalent logic. Remove all other references to - DErrno. - - Reviewed-on: https://gerrit.openafs.org/13798 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 735fa5fb090ee0efc2161597a3974f6fa45126f6) - - Change-Id: Ic7b87d1de71feb7ae741b43d534a3d94cd277125 - Reviewed-on: https://gerrit.openafs.org/15545 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit af227457d470bf8e618c63397c4429578f1c85b7 -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Mon Mar 4 01:37:53 2019 -0500 - - afs: refactor directory checking in DRead - - Commit d566c1cf874d15ca02020894ff0af62c4e39e7bb - 'dread-do-validation-20041012' modified directory checking (in the - afs_buffer.c implementation of DRead()) to use size information passed - to DRead, rather than obtained from the cache via afs_CFileOpen. - - Because this directory checking does not require any information from - the cache buffers or the cache partition, we can make the check right - away, before searching the cache buffers or calling afs_newslot. - - To clarify and simplify, move the directory sanity checking logic to the - beginning of DRead. Remove the afs_newslot cleanup logic which is no - longer needed. - - While here, add Doxygen comments for DRead. - - Reviewed-on: https://gerrit.openafs.org/13803 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 1aa7d3c199e77e3ebdffe9cea4dee8ee82e81fcd) + (cherry picked from commit 612927dd1dd44bbd08eda790de12b24213583156) - Change-Id: I53f4d330c5a4c44ae8619619ba9584006375bf29 - Reviewed-on: https://gerrit.openafs.org/15544 + Change-Id: Iaae28186a24c3c5ca4407de9563c8cfed9644921 + Reviewed-on: https://gerrit.openafs.org/15692 Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 08a90850fd792718ec5abdda172ab0214abfced6 +commit 15357006d9e8e45ac0be9e0c7e87456ee3857d90 Author: Andrew Deason <adeason@sinenomine.net> -Date: Tue Feb 7 22:48:23 2023 -0600 +Date: Tue Jan 30 20:44:48 2024 -0600 - vol: Re-evaluate conditons for cond vars + roken: Declare ct_memcmp in hcrypto kernel roken.h - Most users of cond vars follow this general pattern when waiting for a - condition: + 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, + and all of our kernel callers of ct_memcmp() include krb5_locl.h, so + all callers get a prototype and avoid "implicit declaration" compiler + warnings. - while (!condition) { - CV_WAIT(cv, mutex); - } + However, roken's ct.c itself does not include krb5_locl.h, so it + doesn't get a prototype for ct_memcmp(). This is dangerous, since if + the prototype ever slightly differs from the implementation for any + reason, it could cause a variety of issues. - But a few places in src/vol do this: + This also causes warnings 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). - if (!condition) { - CV_WAIT(cv, mutex); - } + When building against a kernel with CONFIG_WERROR=y, the build fails. - It is important to always re-check for the relevant condition after - waiting for a CV, even if it seems like we only need to wait exactly - once, because pthread_cond_wait() is allowed to wake up its caller - spuriously even the CV hasn't been signalled. On Solaris, this can - actually happen if the calling thread is interrupted by a signal. + We cannot change ct.c, since it is an external source file. To fix + this, instead move the prototype of ct_memcmp() to our stub + kernel-only roken.h header, which is included by ct.c. Make + krb5_locl.h also include roken.h when building kernel code, so all of + the ct_memcmp() callers also get the prototype. - In VInitPreAttachVolumes() for DAFS, currently this can cause a - segfault if CV_WAIT returns while 'vq' is empty. We will try to - queue_Remove() the head of the queue itself, resulting in vq.head.next - being set to NULL, which will segfault when we try to pull the next - item off of the queue. + While we're here, add some informative comments and an include guard + to our previously-blank roken.h stub. - We generally cannot be interrupted by a signal when using opr's - softsig, because signals are only delivered to the softsig thread and - blocked in all other threads. It is technically possible to trigger - this situation on Solaris by sending the (unblockable) SIGCANCEL - signal, though this would be very unusual. + Written in collaboration with cwills@sinenomine.net. - To make sure issues like this cannot happen and to avoid weird corner - cases, adjust all of our CV waiters to wait for a CV using a while() - loop or similar pattern. Spurious wakeups may be impossible with LWP, - but just try to make all code use a similar structure to be safe. - - Thanks for mvitale@sinenomine.net for finding and investigating the - relevant issue. - - Reviewed-on: https://gerrit.openafs.org/15327 - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + Reviewed-on: https://gerrit.openafs.org/15620 Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 9bc06a059121207b354fdf97f65029d8c2b3df30) - - Change-Id: Ib1fdf06570e441b4a322a1e9b90ff084e07ad1fb - Reviewed-on: https://gerrit.openafs.org/15543 Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 088a77b99ba2104ed120e1fcdaf385767c477fc8 -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Mon Jul 18 19:17:26 2022 -0400 - - build: package ltmain.sh in the libafs_tree - - Commit 0a58d2188[1] "cf: Run AFS_LT_INIT after setting CC" moved the - location of LT_INIT (libtool initialization) to a common macro, so it is - now expanded in configure-libafs. This breaks the linux DKMS packaging, - which uses configure-libafs to build the kernel module, since the - ltmain.sh aux file is not included in the dkms package. - - For now, just include the ltmain.sh aux file in the libafs_tree files to - fix DKMS build. Later, we should restructure the autoconf macros so the - LT_INIT macro is not expanded in the configure-libafs configure script, - since we do not need libtool to build the kernel module. - - Thanks to Alex T Prengel for reporting this issue on the openafs-info - mail list. - - 1) 0a58d21881d7e91deccb416e8d2c272e14b412dd cf: Run AFS_LT_INIT after setting CC - - Reviewed-on: https://gerrit.openafs.org/15076 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 76f26c63c7fe9661dfcf267cf75638747c81b7ef) + (cherry picked from commit be236069e9d26339ed5f9939965bca0dd3f8bf4e) - Change-Id: I595811dec056b8ec4a7cf36f6f96532a1e452e4e - Reviewed-on: https://gerrit.openafs.org/15542 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 1d5b5244a63883ada1250d38c7536bd9d3751320 -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Feb 17 18:32:41 2022 -0700 - - afs: Use literal NULL for NULL function pointer - - The clang compiler complains that this function pointer cast is not a - prototype. - - .../osi_file.c:141:27: error: this function declaration is not a - prototype [-Werror,-Wstrict-prototypes] - afile->proc = (int (*)())0; - ^ - void - - Just use NULL instead of trying to create a cast to 0. - - Reviewed-on: https://gerrit.openafs.org/14902 + 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> - (cherry picked from commit 689fb56fca57274e73c8394e8588650449565cd8) - - Change-Id: I61cf49178a80d011b0169a729c3a08e9829cddad - Reviewed-on: https://gerrit.openafs.org/15541 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -commit d50ced2a17e05884ea18bb3dfcde6378b2531dc7 +commit 5d2c4a0a8ada4a87d7f39dc21dbce14b3b2a978f Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Feb 17 18:27:02 2022 -0700 +Date: Fri Jan 12 15:52:57 2024 -0700 - cf: Avoid nested C functions built by autoconf + afs: Add declaration for RXAFS_ResidencyCmd() - Currently, two of the Linux-related autoconf macros try to compile code - containing nested C functions (AC_CHECK_LINUX_OPERATION and - LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID). For example, the - AC_CHECK_LINUX_OPERATION check for 'follow_link' generates this code - where 'op' is a nested function inside 'conftest': + The function RXAFS_ResidencyCmd() is 'manually' defined within the + afsint.xg, so a prototype for the function is not defined. - #include <linux/module.h> - #include <linux/fs.h> - void conftest(void) - { - struct inode_operations ops; - const char *op(struct dentry *dentry, void **link_date) { - return (const char *)0; - }; - ops.follow_link = op; - } + This function is flagged due to a missing prototype 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). - Nested functions are a gcc-specific feature, and are not supported by - other compilers (e.g. clang), causing these checks to always fail when - using clang, leading to incorrect configure results. + When building against a kernel with CONFIG_WERROR=y, the build fails. - To fix this, change AC_CHECK_LINUX_OPERATION and - LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID macros to just define the - relevant function as a proper top-level function. + Add a prototype for RXAFS_ResidencyCmd - (these were discovered by forcing a clang build of both the Linux kernel - and the openafs kernel module) + There are no functional changes with this commit - Reviewed-on: https://gerrit.openafs.org/14901 + The function RXAFS_ResidencyCmd() was introduced with commit: + 'rename-residency-from-mrafs-to-osd-20090427' (8655541d1e) + + Reviewed-on: https://gerrit.openafs.org/15619 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + 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> - (cherry picked from commit a4878a5e26b9997e40a3b197cea5f8c3b24f2539) - - Change-Id: Ie186658167a3f9e162fe85722aa0792cbe4fcfda - Reviewed-on: https://gerrit.openafs.org/15540 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -commit f900670194a356cb7cc3adb43bbde2c044a6e06d +commit 73844a4939a7b8198bf11d4dcbce9e28b621bd11 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed May 25 12:54:50 2022 -0600 +Date: Thu Feb 8 16:10:57 2024 -0700 - ukernel: Fix AFS_GUNLOCK panic in rx_ServerProc + afs: Remove afs_DbgDisconFiles() - At the beginning of UKERNEL's rx_ServerProc a call to AFS_GUNLOCK - panics with 'afs global lock not held'. + The function afs_DbgDisconFiles() is not referenced anywhere within the + source tree. - The commit 'afs: Drop GLOCK for various Rx calls' (d5e1428a3b) altered - afs_RXCallBackServer so the global lock is released prior to calling - rx_ServerProc, and to reacquire the lock after rx_ServerProc returns. + Remove the function afs_DbgDisconFiles(). - Remove the AFS_GUNLOCK at the start and the AFS_GLOCK at the end of - UKERNEL's rx_ServerProc. + The commit: 'disconnected-rw-20080922' (433afd4779) introduced + afs_DbgDisconFiles(), but the function was never used. - Reviewed-on: https://gerrit.openafs.org/14963 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 07076d63edfb9fe7a2311958e9410d5eadb227d9) + This function is flagged due to a missing prototype 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). - Change-Id: If7b0b755e693cb5d892d3300c47fbbdaf76f2f59 - Reviewed-on: https://gerrit.openafs.org/15539 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit e5d871ab40d111f943f8736ddf25064c04a371d5 -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Thu Aug 19 12:52:30 2021 -0400 - - vlserver: Use bounded string copy in FindByName() + When building against a kernel with CONFIG_WERROR=y, the build fails. - Although the volname string passed to FindByName() is currently always - limited 65 characters (including the terminating nul), to be on the safe - side, use the bounded strlcpy() function when coping the volname to the - temporary tname local variable to avoid the possibility of overwriting - the stack with an unbounded strcpy(). - - Reviewed-on: https://gerrit.openafs.org/14763 + Reviewed-on: https://gerrit.openafs.org/15640 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 494ec08cd04da6f96be02c7dc22d9bb0c409d63b) + (cherry picked from commit 32bb90047782f41df521bba5ab4aba8b4ed34203) - Change-Id: I87b225de7d4ce81a4017f47f2d5088ebffd7c66a - Reviewed-on: https://gerrit.openafs.org/15538 + Change-Id: I61d06515845dbb18a370f7856285596514242e99 + Reviewed-on: https://gerrit.openafs.org/15689 Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 883a1a27e6a2f062064f0b4e0440685b1a7de519 -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Thu Aug 19 11:47:04 2021 -0400 - - bozo: Log a warning if the bosserver is not started in restricted mode - - Log a warning to the BosLog when the bosserver is not started in - restricted mode to encourage admins to enable restricted mode. - - Also, log a notice when restricted mode is enabled to reassure admins - restricted mode is enabled on start up. - - Reviewed-on: https://gerrit.openafs.org/14762 - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit d91b92e308dc2ac2e489581839c1fc1bf9147e16) - - Change-Id: Id35b089855797541bbc2f59982b3da7b4fab824e - Reviewed-on: https://gerrit.openafs.org/15537 - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 92ba67d5a6c62b84150de20e83af5db24e5665df -Author: Andrew Deason <adeason@sinenomine.net> -Date: Fri Jul 26 15:28:44 2019 -0500 - - afs: Let afs_ShakeLooseVCaches run longer - - Currently, when afs_ShakeLooseVCaches runs osi_TryEvictVCache, we - check if osi_TryEvictVCache slept (i.e. dropped afs_xvcache/GLOCK). If - we sleep over 100 times, then we stop trying to evict vcaches and - return. - - If we have recently accessed a lot of AFS files, this limitation can - severely reduce our ability to keep our number of vcaches limited to a - reasonable size. For example: - - Say a Linux client runs a process that quickly accesses 1 million - files (a simple 'find' command) and then does nothing else. A few - minutes later, afs_ShakeLooseVCaches is run, but since all of the - newly accessed vcaches have dentries attached to them, we will sleep - on each one in order to try to prune the attached dentries. This means - that afs_ShakeLooseVCaches will evict 100 vcaches, and then return, - leaving us with still almost 1 million vcaches. This will happen - repeatedly until afs_ShakeLooseVCaches finally works its way through - all of the vcaches (which takes quite a while, if we only clear 100 at - once), or the dentries get pruned by other means (such as, if Linux - evicts them due to memory pressure). - - The limit of 100 sleeps was originally added in commit 29277d96 - (newvcache-dont-spin-20060128), but the current effect of it was - largely introduced in commit 9be76c0d (Refactor afs_NewVCache). It - exists to ensure that afs_ShakeLooseVCaches doesn't take forever to - run, but the limit of 100 sleeps may seem quite low, especially if - those 100 sleeps run very quickly. - - To avoid the situation described above, instead of limiting - afs_ShakeLooseVCaches based on a fixed number of sleeps, limit it - based on how long we've been running, and set an arbitrary limit of - roughly 3 seconds. Only check how long we've been running after 100 - sleeps like before, so we're not constantly checking the time while - running. - - Log a new warning if we exit afs_ShakeLooseVCaches prematurely if - we've been running for too long, to help indicate what is going on. - - Reviewed-on: https://gerrit.openafs.org/14254 - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit cd65475e95e25c8e7071e099a682bdcc03d2cce1) - - Change-Id: I6c8e440a3c4dec5e6d769f40d9638a3edc6ad333 - Reviewed-on: https://gerrit.openafs.org/15536 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit ee32460bf2b9f226a699c7f801b597cee2c0d8cb -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Jan 2 11:18:16 2020 -0700 - - afs: Fix EIO error when reading a 4G or larger file - - When reading a file with a file length of >= 4G, the cache manager is - failing the read with an EIO error. - - In afs_GetDCache, the call to IsDCacheSizeOK is passed a parameter that - contains only the lower 32bits of the file length (which requires a 64 - bit value). This results in the EIO error if the length is over 2^32 -1. - - The AFSFetchStatus.Length member needs to be combined with the - AFSFetchStatus.Length_hi to obtain the full 64bit file length. - - Fix the calls to IsDCacheSizeOK to use the full 64bit file length. - - Commit "afs: Check dcache size when checking DVs - 7c60a0fba11dd24494a5f383df8bea5fdbabbdd7" - gerrit 13436 - added the - IsDCacheSizeOK function and the associated calls. - - As a note, the AFSFetchStatus.DataVersion is the lower 32 bits of the - full 64bit version number, AFSFetchStatus.dataVersionHigh contains - the high order 32bits. The function IsDCacheSizeOK is passed just the - 32bit component, the only use of the parameter is in an error message. - - Reviewed-on: https://gerrit.openafs.org/14002 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit bebae936b4ef3bf47624c0ff0baae5521bad804e) - - Change-Id: I68f3ee04af25c7e99e0795804226ba5075af0ea8 - Reviewed-on: https://gerrit.openafs.org/15535 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 652211e8d06835172e209a99ad08644eda21dab3 -Author: Andrew Deason <adeason@sinenomine.net> -Date: Mon Jul 29 18:17:21 2019 -0500 - - afs: Skip IsDCacheSizeOK for CDirty/VDIR - - IsDCacheSizeOK currently can incorrectly flag a dcache as corrupted, - since the size of a dcache may not match the size of the underlying - file in a couple of RW conditions: - - - If someone is writing to a file beyond EOF, the intermediate - 'sparse' area may be populated by 0-length dcaches until the data is - written to the fileserver. - - - Directories may be modified locally instead of being fetched from - the fileserver, which can sometimes result in a directory blob of - differing sizes. - - To avoid false positives detecting dcache corruption, just skip the - IsDCacheSizeOK check for directories, and any file with pending writes - (CDirty). - - Also add some extra information to the logging messages when this - "corruption" is detected, so false positives may be more easily - detected in the future. - - Reviewed-on: https://gerrit.openafs.org/13747 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit e6b97b337bc97fdb1c8e4f1a0572c62dfc82d979) - - Change-Id: I177020c37ba92d8730fe4c68ca610f1b39c3d69b - Reviewed-on: https://gerrit.openafs.org/15533 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit b46d63252b7b8575dd7a79fbd779725f63202afc -Author: Andrew Deason <adeason@sinenomine.net> -Date: Thu Jan 17 16:21:25 2019 -0600 - - afs: Check dcache size when checking DVs - - Currently, if the dcache for a file has nonsensical length (due to - cache corruption or other bugs), we never notice, and we serve - obviously bad data to applications. For example, the vcache metadata - for a file may say the file is 2k bytes long, but the dcache for that - file only has 1k bytes in it (or more commonly, 0 bytes). - - This situation is easily detectable, since the dcache and vcache refer - to the same version of the same file (when the DVs match), and so we - can check if the two lengths make sense together. So to avoid giving - bad data to userspace applications, perform a sanity check on the - lengths at the same time we check for DV matches (to see if the dcache - looks "fresh" and not stale). If the lengths do not make sense - together, we just pretend that the dcache is old, and so we'll ignore - it and fetch a new copy from the fileserver. - - Also check the size of the data fetched from the fileserver for a - newly-fetched dcache in afs_GetDCache, to avoid returning a bad dcache - if the dcache isn't already present in the cache. - - Reviewed-on: https://gerrit.openafs.org/13436 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 7c60a0fba11dd24494a5f383df8bea5fdbabbdd7) - - Change-Id: I197d197f3f2eaf0473c76c60c9df842a3bed934a - Reviewed-on: https://gerrit.openafs.org/15532 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit b7ac4842a146fb4250095aa22419f5859e92dae8 -Author: Marcio Barbosa <mbarbosa@sinenomine.net> -Date: Sat Aug 11 14:00:18 2018 -0400 - - volser: warn if older version of volume is restored - - Volume restores work by overwriting vnodes with the data in the given - volume dump. If we restore a partial incremental dump from an older - version of the volume, this generally results in a partly-corrupted - volume, since directory vnodes may contain references that don't exist - in the current version of the volume (or are supposed to be in a - different directory). - - Currently, the volserver does not prevent restoring older volume data - to a volume, and this doesn't necessarily always result in corrupted - data (for instance, if we are restoring a full volume dump over an - existing volume). But restoring old volume data seems more likely to - be a mistake, since reverting a volume back to an old version, even - without corrupting data, is a strange thing to do and may cause - problems with our methods of cache consistency. - - So, log a warning when this happens, so if this is a mistake, it - doesn't happen silently. But we still do not prevent this action, since - it's possible something could be doing this intentionally. We detect - this just by checking if the updateDate in the given header is older - than the current updateDate for the volume on disk. - - Note: Restoring a full dump file (-overwrite f) will not result in - corrupted data. In this scenario, the restore operation removes the - volume on disk first (if present). After that, the dump file is - restored. In this case, we do not log anything (the volume is not - corrupted). - - Reviewed-on: https://gerrit.openafs.org/13251 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 8375a7f7dd0e3bcbf928a23f874d1a15a952cdef) - - Change-Id: Ic119b0a7b1eac5e01fabbadc0aa679d5f2617d53 - Reviewed-on: https://gerrit.openafs.org/15531 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Indira Sawant <indira.sawant@ibm.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 538f450033a67e251b473ff92238b3124b85fc72 -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Sun Jul 9 18:45:15 2023 -0600 - - hcrypto: rename abort to _afscrypto_abort - - The Linux 6.5 commit: - panic: make function declarations visible (d9cdb43189) - added a declaration for abort into panic.h. - - When building the Linux kernel module, the build fails with the - following: - - src/crypto/hcrypto/kernel/config.h:95:20: error: static declaration of - ‘abort’ follows non-static declaration - 95 | static_inline void abort(void) {osi_Panic("hckernel aborting\n" - );} - | ^~~~~ - ... - from ./include/linux/wait.h:9, - from /openafs/src/afs/sysincludes.h:118, - from /openafs/src/crypto/hcrypto/kernel/config.h:30: - ./include/linux/panic.h:36:6: note: previous declaration of ‘abort’ - with type ‘void(void)’ - 36 | void abort(void); - | ^~~~~ - - Update the declaration in hcrypto/kernel/config.h to change the function - name from abort to _afscrypto_abort and use a preprocessor define to - map abort to _afscrypto_abort. - - Reviewed-on: https://gerrit.openafs.org/15501 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit be8001f1d64a2d9da4fdaeff59fdc40e205d4526 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu Feb 8 12:22:13 2024 -0700 + + afs: Remove SRXAFSCB_FetchData/StoreData + + Commit 'client-64bit-file-size-support-20011031' (971b18bc42) introduced + the RPC functions SRXAFSCB_FetchData() and SRXAFSCB_StoreData with RPC + numbers of 65536 and 65537 respectively. + + Commit 'more-64bit-file-size-support-20011031' (c5b1a3775f) removed the + references from afscbint.xg, but did not remove the actual code. The + 65536 RPC number was reassigned to SRXAFSCB_GetCE64, and the commit: + 'This is mostly a rewrite of src/afs/afs_cell.c, and associated changes' + (629d08065) assigned the 65537 RPC to SRXAFSCB_GetCellByNum. + + Remove the 2 functions since there are no references other than the + prototype in afs_prototypes.h. + + This function is flagged due to a missing prototype 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). + + Reviewed-on: https://gerrit.openafs.org/15639 + Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Tested-by: BuildBot <buildbot@rampaginggeek.com> + 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> + +commit bb7eaafb2e87d313eeb0a7bedebe2aa7a797b005 +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri Jan 12 08:56:31 2024 -0700 + + afs: Remove DFlushDCache() + + The function DFlushDcache() is not referenced anywhere within the + source tree. + + Remove the function DFlushDCache(). + + The commit: 'disconnected-shadow-directory-fixes-20090121' (4045f3d535) + removed the code reference to DFlushDCache() and the commit: + "dir: Prototype and function name cleanup" (5ad1e6cb90) removed the + function prototype. The function was introduced in the commit: + "disconnected-flush-before-shadowing-20090119" (e1cc987ea5). + + This function is flagged due to a missing prototype 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. + + Reviewed-on: https://gerrit.openafs.org/15615 + Tested-by: Benjamin Kaduk <kaduk@mit.edu> + 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> + +commit bd2828f1ab4c88b95a5d075e29a942922aa86dba +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri Jan 12 09:28:02 2024 -0700 + + afs: Remove dummy_PSetAcl() + + The function dummy_PSetAcl() is not referenced anywhere within the + source tree. + + Remove the function dummy_PSetAcl(). + + The commit: 'doxygen-comments-20081010' (4b72f8765c) + introduced the function, but dummy_PSetAcl() has never been referenced + or defined within a header file. + + This function is flagged due to a missing prototype 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. + + Reviewed-on: https://gerrit.openafs.org/15618 + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Tested-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit c4c16890d9d2829f6bef1ef58feafb30b1d59da3) + (cherry picked from commit 05ca98687d882c72915e91430e29a4f2a36c502c) - Change-Id: I54cc9156b98320d04fe6f7bb595a150d5ba87b49 - Reviewed-on: https://gerrit.openafs.org/15523 + 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: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit 63801cfd1fc06ec3259fcfd67229f3a3c70447ed +commit cc8053e86eef75bff308e7606f2618e9fdc4ec5d Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu Jul 13 10:54:22 2023 -0600 +Date: Fri Jan 12 09:13:27 2024 -0700 - Linux 6.5: Use register_sysctl() + afs: Remove afs_osi_UnmaskUserLoop() - The linux 6.5 commit: - "sysctl: Remove register_sysctl_table" (b8cbc0855a) - removed the Linux function register_sysctl_table(). The replacement - function is register_sysctl(), which offers a simpler interface. + The function afs_osi_UnmaskUserLoop() is not referenced anywhere within + the source tree. - Add an autoconf test for the Linux function register_sysctl and add a - call to register_sysctl when available. + Remove the function afs_osi_UnmaskUserLoop(). - Notes: - The Linux function register_sysctl was added in Linux 3.3 with the - commit: - 'sysctl: Add register_sysctl for normal sysctl users' (fea478d410) - with a note that it is a simpler interface. + The commit: 'darwin-afsdb-handler-signal-mask-20040728' (9728182c00) + introduced the function, but afs_osi_UnmaskUserLoop() has never been + referenced or defined within a header file. - The function register_sysctl_table was marked as deprecated with the - Linux 6.3 commit: - 'proc_sysctl: enhance documentation' (1dc8689e4c) + This function is flagged due to a missing prototype 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). - Reviewed-on: https://gerrit.openafs.org/15500 + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15617 Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit fb31d299e6caa015f6288ba9186da6277d3d6a8d) + (cherry picked from commit 587cfce29cb4e014e5b8d96e0433c5e7d2c6729a) - Change-Id: I60f68f1dd95c32bada7179e98250fd44d7c2ddf3 - Reviewed-on: https://gerrit.openafs.org/15522 + 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: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit d15c7ab50c92671052cbe9a93b0440c81156d8aa -Author: Andrew Deason <adeason@sinenomine.net> -Date: Thu Jul 18 22:56:48 2019 -0500 - - 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 - defining some new preprocessor macros. - - Reviewed-on: https://gerrit.openafs.org/13700 Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit 4881af8e3cf3f7d09670ba4b5bb9b644a329530d +Author: Cheyenne Wills <cwills@sinenomine.net> +Date: Fri Jan 12 09:09:39 2024 -0700 + + afs: Remove afs_MemExtendEntry() + + The function afs_MemExtendEntry() is not referenced anywhere within + the source tree. + + Remove the function afs_MemExtendEntry(). + + The commit: 'memcache: add extend-entry function' (f821c7e5c8) + introduced the function, but afs_MemExtendEntry() has never been + referenced or defined within a header file. + + This function is flagged due to a missing prototype 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. + + Note, afsMemExtendedEntry() was a wrapper for the function + _afs_MemExtendedEntry(), which is still used. + + Reviewed-on: https://gerrit.openafs.org/15616 Tested-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 1b0bb8a7fcbd69d513ed30bb76fd0693d1bd3319) + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit eab2a4ae758876bb7547d289f936f9cfc4227cf5) - Change-Id: Ib656634ed956b845c89656069aa297253acce785 - Reviewed-on: https://gerrit.openafs.org/15521 + 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: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -commit fef245769366efe8694ddadd1e1f2ed5ef8608f4 +commit ef7b8c578790d84c89f09c3236f1718725770e75 Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Sun Jul 9 18:52:23 2023 -0600 +Date: Wed Feb 7 14:51:23 2024 -0700 - Linux 6.5: Replace generic_file_splice_read + cf: Add function prototypes for linux conftest - The Linux 6.5 commit: - 'splice: Remove generic_file_splice_read()' (c6585011bc) - replaces the function generic_file_splice_read() with the function - filemap_splice_read(). + The Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f) - The Linux function 'filemap_splice_read()' was introduced with the - Linux 6.3 commits: + added the compiler flags -Wmissing-declarations and -Wmissing-prototypes + as defaults for all kernel modules builds. This change causes configure + to fail for various Linux kernel tests. - 'splice: Add a func to do a splice from a buffered file without - ITER_PIPE' (07073eb01c) - 'splice: Export filemap/direct_splice_read()' (7c8e01ebf2) + Update the template used to create the conftest.c file to provide a + function declaration for conftest(). - With updates in Linux 6.5: - 'splice: Fix filemap_splice_read() to use the correct inode' - (c37222082f) -- which fixes a problem in the code. - 'splice: Make filemap_splice_read() check s_maxbytes' (83aeff881e) + Use a 'static' attribute when defining functions used within tests. - Due to the fact that there could be problems with splice support prior - to Linux 6.5 (where filemap_splice_read()'s use was expanded to - additional filesystems other than just cifs), we only want to use - 'filemap_splice_read()' in Linux 6.5 and later. + Note: 2 configure tests (LINUX_INIT_WORK_AS_DATA and + LINUX_IOP_CREATE_TAKES_MODE_T) defined nested functions. Relocate the + nested functions to outside the body of conftest() to avoid compiler + errors due to nested function definitions. - The LINUX/osi_vnodeops.c file is updated to use 'filemap_splice_read()', - for Linux 6.5 and later, for the splice_read member of the - file_operations structure. - - Reviewed-on: https://gerrit.openafs.org/15486 + Reviewed-on: https://gerrit.openafs.org/15614 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 0e06eb78f293bb295b0fe12da24abd8dc1160149) + (cherry picked from commit 1440843b80e28db908bd8c264b8adbfb2c95b4d9) - Change-Id: I3b5436234d275253a37987dc40a522ae8f3cae1e - Reviewed-on: https://gerrit.openafs.org/15520 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit be21a2041972f6e612bb1717cce9714702038d77 -Author: Andrew Deason <adeason@sinenomine.net> -Date: Wed Aug 26 15:41:00 2020 -0500 - - UKERNEL: Build linktest with COMMON_CFLAGS - - Currently, 'linktest' in libuafs is built with a weird custom rule - that specifies several various CFLAGS and LDFLAGS, etc. One - side-effect of this is that linktest is built without specifying -O, - even if optimization is otherwise enabled. - - Normally nobody would care about the optimization of linktest, since - it's never supposed to be run, but this can cause an error when - building with -D_FORTIFY_SOURCE=1 on some systems (such as RHEL7): - - In file included from /usr/include/sys/types.h:25:0, - from /.../src/config/afsconfig.h:1485, - from /.../src/libuafs/linktest.c:15: - /usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp] - # warning _FORTIFY_SOURCE requires compiling with optimization (-O) - ^ - cc1: all warnings being treated as errors - make[3]: *** [linktest] Error 1 - - For now, to fix this just include $(COMMON_CFLAGS) in the flags we - give for linktest, so $(OPTMZ) also gets pulled in, and building - linktest gets a little closer to a normal compilation step. - - Reviewed-on: https://gerrit.openafs.org/14324 - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit c4f853aa00f1650b678cbd22ad1e2a9cf01c1303) - - Change-Id: I842fc630979fa98950f09326a556da1f7d1cd23b - Reviewed-on: https://gerrit.openafs.org/15519 + 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: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 128772e328d92e1de60bb6e88677f3b0d64a0c12 -Author: Andrew Deason <adeason@sinenomine.net> -Date: Thu Jul 6 15:11:23 2023 -0500 - - cf: Undef _FORTIFY_SOURCE for use-after-free check - - Commit f2003ed68c (gcc: Avoid false positive use-after-free in crypto) - added a configure check to detect whether the compiler we're using - exhibits the use-after-free warning bug. We add -O0 to CFLAGS for the - test to make sure the bug triggers for gcc 12, but if the user has - specified, for example, CFLAGS=-D_FORTIFY_SOURCE=1, this causes - the compile check to always fail: - - /usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp] - # warning _FORTIFY_SOURCE requires compiling with optimization (-O) - - This causes _OPENAFS_UAF_COMPILE_IFELSE to always fail, and so we - throw an AC_MSG_ERROR during configure. - - To allow the build to continue with _FORTIFY_SOURCE, make sure - _FORTIFY_SOURCE is undefined for this specific test. The compile test - can then succeed with -O0 (unless we trigger the use-after-free bug, - of course). - - Reviewed-on: https://gerrit.openafs.org/15499 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 2e6b80e4bcdb476e95c8cff46ebaae69f092abec) - - Change-Id: Ibafe136c2d0364741f0ea2e3d823e181d7983f20 - Reviewed-on: https://gerrit.openafs.org/15518 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -commit 03bc379df9a18b8440a26867921f36f02f8656bb +commit 05ac6149f2f7998b6110c403d26757151b8e8ffe Author: Mark Vitale <mvitale@sinenomine.net> -Date: Fri May 12 23:51:48 2023 -0400 +Date: Thu Mar 11 15:36:54 2021 -0500 - vol: Don't leak volume bitmaps + afs: remove dead ICL (fstrace) code - Since the original IBM code import, attach2 has set the volume's index - bitmaps to NULL in preparation for allocating and initalizing new - bitmaps. However, the volume may already have bitmaps from previous - operations, and this is much more likely with DAFS. In this case, the - old bitmaps are leaked. + 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. + Some of these seem to have been intended to support fine-grained event + tracing, but the implementation was never completed. - Instead, free any existing bitmap before allocating a new one. + Remove the dead code. No functional change is incurred by this commit. - Discovered via Solaris libumem.so.1. + Reviewed-on: https://gerrit.openafs.org/14555 + Tested-by: BuildBot <buildbot@rampaginggeek.com> + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit ba58d9912cff07a6f2af7275017cf70115f1a88d) - Reviewed-on: https://gerrit.openafs.org/15428 + 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: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 4b42b07fde2cb87ecb0f3135612a4c086227fa09) - - Change-Id: I8d67a4ef75218acc6e5852b77b90e7898e78585e - Reviewed-on: https://gerrit.openafs.org/15517 - Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 3b383abaa932fe03f405571c50df4e95043d7998 -Author: Mark Vitale <mvitale@sinenomine.net> -Date: Fri May 12 21:25:36 2023 -0400 - - rxkad: Free memory used to check rxkad response - - Since its introduction with commit 7e4e06b87a09 "Derive DES/fcrypt - session key from other key types", rxkad_derive_des_key has failed to - free the memory associated with its HMAC context struct. - - This results in a leak of at least 352 bytes for each rxkad challenge - response processed by an OpenAFS server when using rxkad-kdf. - - Free the memory by calling HMAC_CTX_cleanup after each round of the - loop. - - Discovered via Solaris libumem.so.1. - - Reviewed-on: https://gerrit.openafs.org/15427 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 915c9ec007810f99a5ea8be73426fc8882f615fd) - - Change-Id: I4710c1180cdca19cc963d7409ef15e74efd51498 - Reviewed-on: https://gerrit.openafs.org/15516 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -commit 898098e01e19970f80f60a0551252b2027246038 +commit 9f052c137d1184a783c8ac3182c3544b275484f5 Author: Andrew Deason <adeason@sinenomine.net> -Date: Fri Apr 7 16:09:30 2023 -0500 +Date: Sat Jan 9 12:50:03 2021 -0600 - LINUX: Make 'fs flush*' invalidate dentry + afs: Remove SRXAFSCB_GetDE - Our 'fs flush' and related commands (flushall, flushvolume) clear the - relevant entries in the OpenAFS stat cache and data cache, which can - fix problems if the cache ever becomes incorrect for any reason. (This - can happen after bugs, repairing corrupted volumes, disaster recovery - scenarios, and similar edge cases.) + The GetDE RPC has been commented out from afscbint.xg effectively + since it was introduced, but we still define the SRXAFSCB_GetDE server + stub for it. - However, on Linux, these commands don't affect the VFS dentry cache. - If someone needs to use an 'fs flush' command to fix a problem, this - will fix the OpenAFS cache, but the Linux dcache can still be wrong. - The only way to manually flush dcache entries is to use the global - 'drop_caches' mechanism, which is a very heavweight operation, only - accessible to root. + This is useless, but also potentially dangerous, since the stub + routine just returns success, without populating the output arguments. + One of the output arguments is a string, and so if this RPC is + actually run, the rxgen-generated server code will try to xdr_string() + that string. Since we never set it to anything, this will result in + xdr_string trying to dereference a NULL pointer. - For example: + None of this actually happens currently, since the GetDE RPC is + commented out. But to avoid the above situation if it's ever + uncommented, remove the useless SRXAFSCB_GetDE function. - $ ls -l - ls: cannot access foo.1: No such file or directory - total 2 - drwxrwxr-x. 2 bin adeason 2048 Apr 6 14:20 dir - -?????????? ? ? ? ? ? foo.1 - $ fs flush . - $ ls -l - ls: cannot access foo.1: No such file or directory - total 2 - drwxrwxr-x. 2 bin adeason 2048 Apr 6 14:20 dir - -?????????? ? ? ? ? ? foo.1 - $ sudo sysctl -q -w vm.drop_caches=3 - $ ls -l - total 3 - drwxrwxr-x. 2 bin adeason 2048 Apr 6 14:20 dir - -rw-rw-r--. 1 bin adeason 29 Sep 22 2022 foo.1 - - To make the 'fs flush' commands be effective in more situations, - change afs_ResetVCache() to also invalidate the dcache entries - associated with each vcache we reset. To make things simpler and - reduce locking complexity, do this by setting d_time to 0, and don't - directly run dcache-managing functions like d_invalidate or d_drop, - etc. - - The above example now becomes: - - $ ls -l - ls: cannot access foo.1: No such file or directory - total 2 - drwxrwxr-x. 2 bin adeason 2048 Apr 6 14:20 dir - -?????????? ? ? ? ? ? foo.1 - $ fs flush . - $ ls -l - total 3 - drwxrwxr-x. 2 bin adeason 2048 Apr 6 14:20 dir - -rw-rw-r--. 1 bin adeason 29 Sep 22 2022 foo.1 - - Reviewed-on: https://gerrit.openafs.org/15391 - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> + Reviewed-on: https://gerrit.openafs.org/14488 + Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit d460b616ebad763f7e480e194b2bffc28df99721) + (cherry picked from commit 444a971edc47c34efbefed6e332ee6e843ae072b) - Change-Id: I184046469c396b0421752d91c47477ebe8eaed13 - Reviewed-on: https://gerrit.openafs.org/15515 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> + Change-Id: I83846d79ce3143571923cb6023075620091f093d + Reviewed-on: https://gerrit.openafs.org/15681 Tested-by: BuildBot <buildbot@rampaginggeek.com> - Tested-by: Michael Meffie <mmeffie@sinenomine.net> + Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit a50282c70fb8b7acc69787e4ecfd15b95bc25dcf -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Mon Aug 24 13:12:13 2020 -0400 - - build: Add rpm target - - Add a top-level makefile target to build RPMs for Red Hat distributions - from the currently checked out commit. The resulting rpms are placed in - the packages/rpmbuild/RPMS/<arch> directory. - - The rpm target is intended to be a convenience for testing changes to - the rpm packaging or generating packages for local testing. - - Reviewed-on: https://gerrit.openafs.org/14114 - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit 8b68f1a4e1e3ae06de0d6c5a8af60ef99cacb83a) - - Change-Id: I31fcd579d9610303cb44b4813ecaf8dd00e09e7e - Reviewed-on: https://gerrit.openafs.org/15514 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -commit f9db82620593cf90f3cae05581a71afcd7168820 -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Fri May 1 14:05:24 2020 -0400 - - makesrpm: Support custom version strings - - The makesrpm.pl script generates a source RPM by creating a temporary - rpmbuild workspace, populating the SOURCES and SPECS directories in that - workspace, running rpmbuild to build the source RPM, and finally copying - the resulting source RPM out of the temporary workspace. - - The name of the source RPM file created by rpmbuild depends on the - package version and release strings. Unfortunately, the format of the - source RPM file name changed around OpenAFS 1.6.0, so makesrpm.pl has - special logic to find the version string and extra code depending on the - detected OpenAFS version. - - Instead of trying to predict the name of the resulting source RPM file - from the OpenAFS version string, and having different logic for old - versions of OpenAFS, use a filename glob to find resulting source RPM - file name in the temporary rpmbuild workspace. - - Remove the major, minor, and patch level variables, which were only used - to guess the name of the resulting source RPM file name. - - Convert '-' characters to '_' in the package version and package - release, since the '-' character is reserved by rpm as a field - separator. - - While here, add the --dir option to specify the path of the generated - source RPM, and change the 'srpm' makefile target to use the new --dir - option, instead of changing the current directory before running - makesrpm.pl. Also, add a dependency on the 'dist' makefile target, - since the the source and document tarballs are required to build the - source RPM. - - Add pod documentation and add the --help (-h) option to print a brief - help message, and add the --man option to print the full man page. - - With this change, we can build a source RPM even when the .version file - in the src.tar.bz file has a custom format or was created from a - checkout of the master branch or other non-release reference. - - Reviewed-on: https://gerrit.openafs.org/14116 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 7cc6b97ad26089ecb88019468f3ef7c0222cebe1) - - Change-Id: I6f533aa4dff42c8e256fd7cf07831e0f6c0b0c63 - Reviewed-on: https://gerrit.openafs.org/15513 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 2899837875ed32015f8b1d970a1b23af52abb76b -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Wed Mar 29 15:58:24 2017 -0400 - - bozo: Do not create client directory and symlinks - - Each time the bosserver starts, it checks for the presence of the client - configuration directory and the CellServDB and ThisCell files within it. - When not found, the bosserver creates the client cell configuration - directory. When the CellServDB and ThisCell files are not present in the - client configuration directory, the bosserver creates symlinks to the - server's CellServDB and ThisCell files. This feature of the bosserver - was a convenience when older versions of vos and pts required a client - configuration directory. - - However, modern deployments tend to use packaging, with separate client - and server packages. The client configuration directory and files in it - are typically managed by the client packaging. Currently, packagers - must work around these symlinks created by the bosserver. Additionally, - the CellServDB and ThisCell symlinks are hazardous since writing to the - client-side configuration will overwrite the server configuration. - - This commit removes the creation the client configuration directory and - the CellServDB and ThisCell symlinks during bosserver startup. This - change is intended to decouple the server from the client, help to avoid - overwriting the server configuration, and avoid requiring client artifacts - on a server. - - Reviewed-on: https://gerrit.openafs.org/12586 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit c8aae4da4fcfd22c19fc9c8835960005554ac9d6) - - Change-Id: I76d24eadaecd19d21f12b8bd85eca2a4888d3e4c - Reviewed-on: https://gerrit.openafs.org/15512 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit c495c81754f35be4cfc8c06f358eec20456de76e -Author: Michael Meffie <mmeffie@sinenomine.net> -Date: Wed Aug 31 13:41:30 2022 -0400 - - Add command fallback to server config - - Add an initialization retry in the bos, vos, and pts commands to - fallback to the server configuration directory when initialization fails - with the client configuration directory. This allows admins to run - unauthenticated bos, vos, and pts commands on servers without a client - configuration (including symlinks created by the bosserver) without - any extra command line options. - - Perform the initialization retry only when the -localauth or -config - options are not given. The bos, vos, and pts commands already use the - server configuration path when the -localauth option is given, so there - is no point in retrying the same path. The vos and pts -config option - specifies the path to be used, so we do not fallback to a different - directory when the user specifies the configuration path to be used. - - While here, change the scope of the confdir variable in vos.c from a - global to a local variable, since it is only used within the - MyBeforeProc() function. - - This change does not add a vsu_ClientInit() retry in the bos salvage - command. That command always requires authorization, so when run without - -localauth requires a token (and therefore a cache manager and client - cell configuration). - - Update the bos, vos, and pts man pages to describe this new fallback - method to lookup the configuration directory. (The AFSCONF environment - variable and .AFSCONF files are currently undocumented in the man pages. - They should be documented or removed from the code in a future change.) - - Reviewed-on: https://gerrit.openafs.org/15351 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 77eb1728331e0825ecb6fbe29db334c61b5276d0) - - Conflicts: (1.8.x does not have rxgk support) - src/ptserver/pts.c - src/volser/vos.c - - Change-Id: I1e0ffb8a074098ed6d4750d8e02cbfb8c0dbaff5 - Reviewed-on: https://gerrit.openafs.org/15511 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit c77491e189a5a8814ad001c47d428c70dfaebd20 +commit 1e1bf8ebcd3c18b05326cd7b26a471db804aeaeb Author: Andrew Deason <adeason@sinenomine.net> -Date: Fri Oct 25 19:04:44 2019 -0500 +Date: Tue Jul 24 23:22:01 2018 -0500 - pts: Use cmd_AddParmAtOffset for common parms + LINUX: Minor osi_vfsop.c cleanup - Update pts to use cmd_AddParmAtOffset and symbolic constants for our - common parameters, instead of using bare literals like '16'. + - Fix the formatting on afs_mount/afs_get_sb definitions - Reviewed-on: https://gerrit.openafs.org/13946 - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> + - Declare a couple of functions static that are not referenced outside + of this file + + Reviewed-on: https://gerrit.openafs.org/13282 + Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - (cherry picked from commit d0941e81b2f1f499cebb57d8a81d82802913d9be) + (cherry picked from commit fa15fbda0aa0c3810695d9b867d3258b60e76b7c) - Conflicts: (1.8.x does not have rxgk support) - src/ptserver/pts.c - - Change-Id: I0bc2c6038c0d7983c6364ec186aef18105b02d3a - Reviewed-on: https://gerrit.openafs.org/15510 - Tested-by: BuildBot <buildbot@rampaginggeek.com> + Change-Id: I8a32475bf2ddb9c7206aef679947021925697c5a + Reviewed-on: https://gerrit.openafs.org/15680 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit d80485cd950929503e9a2e1464313580c021ff63 -Author: Andrew Deason <adeason@sinenomine.net> -Date: Fri Jul 8 17:14:26 2022 -0500 - - viced: Verify primary host address - - Currently, h_stateVerifyHost verifies that all of the valid entries on - h->z.interface are on the host address hashtable. If we don't have a - h->z.interface, we check the primary address h->z.host/h->z.port - instead. - - But if we do have a h->z.interface, we don't check h->z.host/h->z.port - at all. Normally, the primary address should always be included in the - h->z.interface list (in a 'valid==1' entry), and so checking the - primary address is redundant. However, currently it is possible in - some edge cases for the primary address to be missing from the - hashtable and to not be listed as a valid address in h->z.interface. - In such cases, we don't flag an error or even log a warning, since we - don't check the primary address separately. (These cases are bugs, and - will be addressed in future commits.) - - To detect this case, change h_stateVerifyHost to always check - h->z.host, just like we do for the entries in h->z.interface. - - Reviewed-on: https://gerrit.openafs.org/15070 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> - Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - (cherry picked from commit 9d144491d94e7e19e2d710601a37045ef1ef1fdc) - - Change-Id: Icdd65c081372e1057df67401643973e1ac6f016e - Reviewed-on: https://gerrit.openafs.org/15509 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 6fc1d81eb7f8c06f5fea54403419b30b4d95fb97 -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon Jul 3 13:14:52 2023 -0600 - - gcc: Avoid false positive use-after-free in crypto - - Due to a bug in gcc-12 and gcc-13, several warnings are generated for a - use-after-free in crypto.c, which leads to a build failure with - --enable-checking: - - src/external/heimdal/krb5/crypto.c:1157:9: error: pointer ‘p’ may be - used after ‘realloc’ [-Werror=use-after-free] - 1157 | free(p); - | ^~~~~~~ - src/external/heimdal/krb5/crypto.c:1155:20: note: call to ‘realloc’ - here - 1155 | result->data = realloc(p, sz); - | ^~~~~~~~~~~~~~ - - However, reviewing the code around these warnings shows that the - use-after-free warnings are incorrectly generated (false positive). The - documentation for realloc states that realloc will return a NULL and not - alter the storage passed if there was an error allocating and the size - passed is non-zero. - - There is a possible work-around for the false positive. One can use a - variable that is not a member of a structure to hold and test the value - returned from realloc, then update the structure member from that - variable. - - However, the code that is producing the message is in a heimdal external - file, so we cannot modify the source. So just use the compiler flag - -Wno-use-after-free to avoid the warning/error. - - Update configure to add tests for the -Wno-use-after-free flag, update - the Makefile to add the flag for CFLAGS.crypto.lo, and update CODING - for the new exception. - - Because this is an important check, only disable the warning if the - compiler exhibits this specific bug. We do this by adding specific - configure tests for the compiler bug and conditionally set a CFLAG - variable if the bug is present. - - NOTE: The false positive and work-around can be demonstrated with the - following code using gcc-12 (with -O0) or gcc-13 (not sensitive to the - optimization level): - - somestruct->somepointer = realloc(ptr, somesize); - if (somestruct->somepointer == NULL && somesize != 0) { - free(ptr); << gets flagged as use-after-free - handle enomem... - } - - However the following doesn't get flagged: - - char *tmpptr = realloc(ptr, somesize); - if (tmpptr == NULL && somesize != 0) { - free(ptr); - handle enomem... - } - somestruct->somepointer = tmpptr; - - The GCC ticket https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110501 - has been marked as confirmed. - - Reviewed-on: https://gerrit.openafs.org/15471 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - (cherry picked from commit f2003ed68c2fecf679d0b04146427258d39369ea) - - Change-Id: Ib7ae86c66f0ef1fc12d4ff4b796b712dc97e2e13 - Reviewed-on: https://gerrit.openafs.org/15508 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit 6867a3e8429f37fb748575df52256227ae9e5b53 -Author: Cheyenne Wills <cwills@sinenomine.net> -Date: Tue Jun 27 12:31:30 2023 -0600 - - cf: Fix cast-function-type err w/disable-checking - - If the Linux kernel has CONFIG_WERROR enabled, and openafs is configured - with --disable-checking, the libafs kernel module fails to build: - - /src/libafs/MODLOAD-5.14.0-305.el9.x86_64-MP/evp.c:501:9: - error: cast between incompatible function types from - ‘void (*)(void *)’ to ‘int (*)(EVP_MD_CTX *)’ {aka - ‘int (*)(struct hc_EVP_MD_CTX *)’} [-Werror=cast-function-type] - 501 | (hc_evp_md_init)null_Init, - | ^ - - The openafs commit: - - Linux-5.17: Kernel build uses -Wcast-function-type (6bdfa97673) - - fixed above error when the Linux kernel has CONFIG_WERROR enabled and - openafs is configured with --enable-checking. But we will still fail - when CONFIG_WERROR is enabled and openafs is configured with - --disable-checking (which is the default). - - Update osconf.m4 to always set CFLAGS_NOCAST_FUNCTION_TYPE, so that it - can be used to avoid the above compiler check even when checking is - disabled. - - NOTE: The only use of CFLAGS_NOCAST_FUNCTION_TYPE is to correct the - warnings flagged in external/heimdal/hcrypto/evp.c and evp-algs.c. - - NOTE: --enable-checking=all can be used to bypass setting the define. - - Reviewed-on: https://gerrit.openafs.org/15417 - Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Tested-by: Benjamin Kaduk <kaduk@mit.edu> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - (cherry picked from commit 2357ac6ae59ad1908b14b5e76e5931c7071ee9a2) + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + +commit fca6fd911e493a344c040a95ea4ab820e2828802 +Author: Andrew Deason <adeason@sinenomine.net> +Date: Thu Jun 28 12:50:52 2018 -0500 + + afs: Make afs_AllocDCache static - Change-Id: I96ccf89a7316449a0492d08dbfc0e625e143d933 - Reviewed-on: https://gerrit.openafs.org/15507 + Nothing using afs_AllocDCache outside of afs_dcache.c. Declare the + function static, to ensure that nobody else uses it, and to maybe + allow for more compiler optimization. + + Reviewed-on: https://gerrit.openafs.org/13226 Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> - -commit bb1b7b1adcb52a07a1bdcb0d42f8a5a366b5f4db -Author: Kailas Zadbuke <kailashsz@in.ibm.com> -Date: Sun Apr 23 20:06:00 2023 +0530 - - afs: Check UHasTokens in afs_GCUserData + Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> + (cherry picked from commit 4ab70de9641807bd06056f0c1ac79550453b9574) - It looks that EndTimestamp holds the user’s token expiration time even after - function afs_MarkUserExpired() gets called from afs_pag_destroy(). So it - seems that the PAGs/tokens are not being reclaimed. This will lead to pag - buildup on the system. - - The PAG/'struct unixuser' is not being freed because afs_GCUserData() checks - afs_HasUsableTokens(), which checks EndTimestamp, which says the tokens still - haven't expired. So the PAG doesn't get freed. - - This behavior has existed since commit ba1d050c6e (Make unixuser's vid - advisory). - - To fix this, change afs_GCuserData() to check for the UHasTokens flag, and - ignore any tokens if UHasTokens isn't set. This causes the PAG to be freed, - since we don't look at the EndTimestamp of the tokens at all. - - Thanks Todd DeSantis for your support. - - Signed-off-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-on: https://gerrit.openafs.org/15404 + 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> - (cherry picked from commit 630d423897e5fffed1873aa9d12c4e74a8481041) - - Change-Id: I74b1ea1173df904928ad027e48b231058c1e0f1d - Reviewed-on: https://gerrit.openafs.org/15506 - Tested-by: BuildBot <buildbot@rampaginggeek.com> - Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com> - Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> - Reviewed-by: Andrew Deason <adeason@sinenomine.net> - Reviewed-by: Mark Vitale <mvitale@sinenomine.net> - Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> diff --git a/RELNOTES-1.8.11 b/RELNOTES-stable-1_8_x similarity index 87% rename from RELNOTES-1.8.11 rename to RELNOTES-stable-1_8_x index 9562bc5..bc345bf 100644 --- a/RELNOTES-1.8.11 +++ b/RELNOTES-stable-1_8_x @@ -1,3 +1,17 @@ +Preface: +======== + +This is the Release-Notes of the last official release. +However, +this version is based on the git branch "openafs-stable-1_8_x" +and thus has additional changes beside the ones for 1.8.11. +The reason for this is the compatibility with current Linux-Kernels. +The ChangeLog gives you all commits applied since then. +The versioning-scheme of these packages is: openafs-$LAST_OFFICIAL_RELEASE.git$DATE_OF_NEWEST_COMMIT + +The package-maintainer. + + User-Visible OpenAFS Changes OpenAFS 1.8.11 diff --git a/a14a9ad.diff b/a14a9ad.diff deleted file mode 100644 index 70eb450..0000000 --- a/a14a9ad.diff +++ /dev/null @@ -1,177 +0,0 @@ -From a14a9add73341bc3c355250bc43282e022bff95c Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed, 07 Feb 2024 15:25:10 -0700 -Subject: [PATCH] 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 -heimdal/krb5 (e.g. crypto.c). - -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. - -We cannot modify the external source files, however there is the local -OpenAFS include file, krb5_locl.h, that does contain OpenAFS specific -changes. - -Add declarations to krb5_locl.h for the functions defined in the -heimdal/krb5 source. - -There are no functional changes with this commit. - -Reviewed-on: https://gerrit.openafs.org/15621 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 612927dd1dd44bbd08eda790de12b24213583156) - -Change-Id: Iaae28186a24c3c5ca4407de9563c8cfed9644921 ---- - -diff --git a/src/crypto/rfc3961/krb5_locl.h b/src/crypto/rfc3961/krb5_locl.h -index 6e70673..04292ee 100644 ---- a/src/crypto/rfc3961/krb5_locl.h -+++ b/src/crypto/rfc3961/krb5_locl.h -@@ -287,6 +287,138 @@ - krb5_enctype etype, - char **string); - -+/* -+ * Unused prototypes from heimdal/krb5. These are functions that are not used -+ * outside of their compilation unit at all, but we may need to declare them to -+ * avoid compiler warnings. -+ */ -+struct _krb5_key_data; -+struct _krb5_encryption_type; -+/* heimdal/krb5/crypto.c */ -+KRB5_LIB_FUNCTION krb5_error_code _krb5_derive_key(krb5_context context, -+ struct _krb5_encryption_type *et, -+ struct _krb5_key_data *key, -+ const void *constant, -+ size_t len); -+KRB5_LIB_FUNCTION krb5_error_code krb5_allow_weak_crypto(krb5_context context, -+ krb5_boolean enable); -+KRB5_LIB_FUNCTION krb5_error_code krb5_checksum_disable(krb5_context context, -+ krb5_cksumtype type); -+KRB5_LIB_FUNCTION krb5_boolean krb5_checksum_is_keyed(krb5_context context, -+ krb5_cksumtype type); -+KRB5_LIB_FUNCTION krb5_error_code krb5_cksumtype_valid(krb5_context context, -+ krb5_cksumtype ctype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_create_checksum_iov(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ krb5_crypto_iov *data, -+ unsigned int num_data, -+ krb5_cksumtype *type); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_getblocksize(krb5_context context, -+ krb5_crypto crypto, -+ size_t *blocksize); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_getenctype(krb5_context context, -+ krb5_crypto crypto, -+ krb5_enctype *enctype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_getpadsize(krb5_context context, -+ krb5_crypto crypto, -+ size_t *padsize); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_length(krb5_context context, -+ krb5_crypto crypto, -+ int type, -+ size_t *len); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_length_iov(krb5_context context, -+ krb5_crypto crypto, -+ krb5_crypto_iov *data, -+ unsigned int num_data); -+KRB5_LIB_FUNCTION krb5_error_code krb5_decrypt_iov_ivec(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ krb5_crypto_iov *data, -+ unsigned int num_data, -+ void *ivec); -+KRB5_LIB_FUNCTION krb5_error_code krb5_decrypt_ivec(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ void *data, -+ size_t len, -+ krb5_data *result, -+ void *ivec); -+KRB5_LIB_FUNCTION krb5_error_code krb5_encrypt_iov_ivec(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ krb5_crypto_iov *data, -+ int num_data, -+ void *ivec); -+KRB5_LIB_FUNCTION krb5_error_code krb5_encrypt_ivec(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ const void *data, -+ size_t len, -+ krb5_data *result, -+ void *ivec); -+KRB5_LIB_FUNCTION krb5_error_code krb5_enctype_disable(krb5_context context, -+ krb5_enctype enctype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_enctype_enable(krb5_context context, -+ krb5_enctype enctype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_enctype_to_keytype(krb5_context context, -+ krb5_enctype etype, -+ krb5_keytype *keytype); -+KRB5_LIB_FUNCTION size_t krb5_get_wrapped_length (krb5_context context, -+ krb5_crypto crypto, -+ size_t data_len); -+KRB5_LIB_FUNCTION krb5_error_code krb5_hmac(krb5_context context, -+ krb5_cksumtype cktype, -+ const void *data, -+ size_t len, -+ unsigned usage, -+ krb5_keyblock *key, -+ Checksum *result); -+KRB5_LIB_FUNCTION krb5_boolean krb5_is_enctype_weak(krb5_context context, -+ krb5_enctype enctype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_string_to_enctype(krb5_context context, -+ const char *string, -+ krb5_enctype *etype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_verify_checksum_iov(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ krb5_crypto_iov *data, -+ unsigned int num_data, -+ krb5_cksumtype *type); -+KRB5_LIB_FUNCTION krb5_error_code krb5_generate_random_keyblock(krb5_context context, -+ krb5_enctype type, -+ krb5_keyblock *key); -+KRB5_LIB_FUNCTION krb5_boolean krb5_checksum_is_collision_proof(krb5_context context, -+ krb5_cksumtype type); -+ -+KRB5_LIB_FUNCTION krb5_error_code krb5_cksumtype_to_enctype(krb5_context context, -+ krb5_cksumtype ctype, -+ krb5_enctype *etype); -+KRB5_LIB_FUNCTION krb5_error_code krb5_encrypt_EncryptedData(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ void *data, -+ size_t len, -+ int kvno, -+ EncryptedData *result); -+KRB5_LIB_FUNCTION krb5_error_code krb5_crypto_getconfoundersize(krb5_context context, -+ krb5_crypto crypto, -+ size_t *confoundersize); -+ -+KRB5_LIB_FUNCTION krb5_error_code krb5_decrypt_EncryptedData(krb5_context context, -+ krb5_crypto crypto, -+ unsigned usage, -+ const EncryptedData *e, -+ krb5_data *result); -+/* heimdal/krb5/data.c */ -+KRB5_LIB_FUNCTION krb5_error_code krb5_data_realloc(krb5_data *p, int len); -+KRB5_LIB_FUNCTION krb5_error_code krb5_copy_data(krb5_context context, -+ const krb5_data *indata, -+ krb5_data **outdata); -+KRB5_LIB_FUNCTION int krb5_data_cmp(const krb5_data *data1, const krb5_data *data2); -+/* heimdal/krb5/store-int.c */ -+KRB5_LIB_FUNCTION krb5_ssize_t _krb5_get_int(void *buffer, unsigned long *value, size_t size); -+ - #include "crypto.h" - - struct _krb5_checksum_type * _krb5_find_checksum (krb5_cksumtype); diff --git a/a87845d.diff b/a87845d.diff deleted file mode 100644 index dd92852..0000000 --- a/a87845d.diff +++ /dev/null @@ -1,99 +0,0 @@ -From a87845d40aac04ff12dde369753c9472a8e4808d Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon, 12 Feb 2024 09:43:29 -0700 -Subject: [PATCH] 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 -afscbint.h (which is generated by rxgen). - -Remove the protoypes for the SRXAFSCB_* functions from afs_prototypes.h -as they are redundant and are currently out of sync (the prototypes -for SRXAFSCB_GetCellByNum() and SRXAFSCB_TellMeAboutYourself() are -not present in afs_prototypes.h). Also remove a redundant prototype for -afs_RXCallBackServer() which was prototyped both before and in the -middle of the SRXAFSCB* prototypes. - -Since afs_callback.c only pulled in afs_prototypes.h and not afscbint.h, -add an include for afscbint.h to ensure that the all the prototypes for -the SRXAFSCB_* functions are present. - -The 2 functions listed above 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. - -Reviewed-on: https://gerrit.openafs.org/15644 -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit fae4003b403420d0b548920c7837a2d2b6e432ae) - -Change-Id: I7d435455fc60cc10200ee91d0d76534367ab5883 ---- - -diff --git a/src/afs/afs_callback.c b/src/afs/afs_callback.c -index 56e8cd2..1fe990e 100644 ---- a/src/afs/afs_callback.c -+++ b/src/afs/afs_callback.c -@@ -19,6 +19,8 @@ - - #include "afs/sysincludes.h" /*Standard vendor system headers */ - #include "afsincludes.h" /*AFS-based standard headers */ -+#define FSINT_COMMON_XG -+#include "afs/afscbint.h" - #include "afs/afs_stats.h" /*Cache Manager stats */ - #include "afs/opr.h" - #include "afs/afs_args.h" -diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h -index d7894dd..b9811f8 100644 ---- a/src/afs/afs_prototypes.h -+++ b/src/afs/afs_prototypes.h -@@ -65,44 +65,7 @@ - extern struct interfaceAddr afs_cb_interface; - - extern int afs_RXCallBackServer(void); --extern int SRXAFSCB_GetCE(struct rx_call *a_call, afs_int32 a_index, -- struct AFSDBCacheEntry *a_result); --extern int SRXAFSCB_GetCE64(struct rx_call *a_call, afs_int32 a_index, -- struct AFSDBCacheEntry64 *a_result); --extern int SRXAFSCB_GetLock(struct rx_call *a_call, afs_int32 a_index, -- struct AFSDBLock *a_result); --extern int SRXAFSCB_CallBack(struct rx_call *a_call, -- struct AFSCBFids *a_fids, -- struct AFSCBs *a_callbacks); --extern int SRXAFSCB_Probe(struct rx_call *a_call); --extern int SRXAFSCB_InitCallBackState(struct rx_call *a_call); --extern int SRXAFSCB_XStatsVersion(struct rx_call *a_call, -- afs_int32 * a_versionP); --extern int SRXAFSCB_GetXStats(struct rx_call *a_call, -- afs_int32 a_clientVersionNum, -- afs_int32 a_collectionNumber, -- afs_int32 * a_srvVersionNumP, -- afs_int32 * a_timeP, AFSCB_CollData * a_dataP); --extern int afs_RXCallBackServer(void); - extern int shutdown_CB(void); --extern int SRXAFSCB_InitCallBackState2(struct rx_call *a_call, -- struct interfaceAddr *addr); --extern int SRXAFSCB_WhoAreYou(struct rx_call *a_call, -- struct interfaceAddr *addr); --extern int SRXAFSCB_InitCallBackState3(struct rx_call *a_call, -- afsUUID * a_uuid); --extern int SRXAFSCB_ProbeUuid(struct rx_call *a_call, afsUUID * a_uuid); --extern int SRXAFSCB_GetServerPrefs(struct rx_call *a_call, afs_int32 a_index, -- afs_int32 * a_srvr_addr, -- afs_int32 * a_srvr_rank); --extern int SRXAFSCB_GetCellServDB(struct rx_call *a_call, afs_int32 a_index, -- char **a_name, serverList * a_hosts); --extern int SRXAFSCB_GetLocalCell(struct rx_call *a_call, char **a_name); --extern int SRXAFSCB_GetCacheConfig(struct rx_call *a_call, -- afs_uint32 callerVersion, -- afs_uint32 * serverVersion, -- afs_uint32 * configCount, -- cacheConfig * config); - - /* afs_cbqueue.c */ - extern afs_rwlock_t afs_xcbhash; diff --git a/aae8b00.diff b/aae8b00.diff deleted file mode 100644 index b2f445c..0000000 --- a/aae8b00.diff +++ /dev/null @@ -1,53 +0,0 @@ -From aae8b00d97585b60702151c6f28ff7ec4d65c2d9 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 09:09:39 -0700 -Subject: [PATCH] afs: Remove afs_MemExtendEntry() - -The function afs_MemExtendEntry() is not referenced anywhere within -the source tree. - -Remove the function afs_MemExtendEntry(). - -The commit: 'memcache: add extend-entry function' (f821c7e5c8) -introduced the function, but afs_MemExtendEntry() has never been -referenced or defined within a header file. - -This function is flagged due to a missing prototype 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. - -Note, afsMemExtendedEntry() was a wrapper for the function -_afs_MemExtendedEntry(), which is still used. - -Reviewed-on: https://gerrit.openafs.org/15616 -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit eab2a4ae758876bb7547d289f936f9cfc4227cf5) - -Change-Id: I37f241a6df33ab15249c6708d5ca820353c8b413 ---- - -diff --git a/src/afs/afs_memcache.c b/src/afs/afs_memcache.c -index 936cbe9..419083d 100644 ---- a/src/afs/afs_memcache.c -+++ b/src/afs/afs_memcache.c -@@ -302,16 +302,6 @@ - return 0; - } - --int --afs_MemExtendEntry(struct memCacheEntry *mceP, afs_uint32 size) --{ -- int code = 0; -- ObtainWriteLock(&mceP->afs_memLock, 560); -- code = _afs_MemExtendEntry(mceP, size); -- ReleaseWriteLock(&mceP->afs_memLock); -- return code; --} -- - void - shutdown_memcache(void) - { diff --git a/b77b304.diff b/b77b304.diff deleted file mode 100644 index 5bfe7d2..0000000 --- a/b77b304.diff +++ /dev/null @@ -1,47 +0,0 @@ -From b77b304bb58f472e8a9d2f3b6d47fffd38d0c905 Mon Sep 17 00:00:00 2001 -From: Andrew Deason <adeason@sinenomine.net> -Date: Tue, 07 Dec 2021 15:43:35 -0600 -Subject: [PATCH] rxgen: Declare generated PKG_TranslateOpCode() - -Ever since commit 5c77a6ca (rxgen: add *TranslateOpcode functions to -XDR code), rxgen generates a PKG_TranslateOpCode function in the -relevant .xdr.c source, which can translate an RPC opcode into the RPC -name. But we never declare this function in a header file, making it -impossible to use without compiler warnings (unless the caller -declares the function itself). - -To make it possible to actually use this function, declare this -function in the generated header file. - -Reviewed-on: https://gerrit.openafs.org/14871 -Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 9b2c27fc6d299cb0b23eca3e8cb25b7e0c41b11a) - -Change-Id: I2479ff7f6579769b3319b2939ffde60fe570c880 ---- - -diff --git a/src/rxgen/rpc_parse.c b/src/rxgen/rpc_parse.c -index 768e42f..59854f4 100644 ---- a/src/rxgen/rpc_parse.c -+++ b/src/rxgen/rpc_parse.c -@@ -2150,6 +2150,8 @@ - { - f_print(fout,"\nextern int %s%sExecuteRequest(struct rx_call *);\n", - prefix, PackagePrefix[PackageIndex]); -+ f_print(fout,"extern char * %s%sTranslateOpCode(int op);\n", prefix, -+ PackagePrefix[PackageIndex]); - } - - static void -@@ -2161,6 +2163,8 @@ - f_print(fout,"\nextern int %s%sExecuteRequest(struct rx_call *);\n", - prefix, pprefix); - f_print(fout,"\nextern int %sOpCodeIndex(int op);\n", PackagePrefix[PackageIndex]); -+ f_print(fout, "extern char * %s%sTranslateOpCode(int op);\n", -+ prefix, pprefix); - } - - void diff --git a/d1c89ac.diff b/d1c89ac.diff deleted file mode 100644 index d51f8ce..0000000 --- a/d1c89ac.diff +++ /dev/null @@ -1,89 +0,0 @@ -From d1c89acf70a794b78c5daaff206d734e36bbec6d Mon Sep 17 00:00:00 2001 -From: Andrew Deason <adeason@sinenomine.net> -Date: Tue, 30 Jan 2024 20:44:48 -0600 -Subject: [PATCH] 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, -and all of our kernel callers of ct_memcmp() include krb5_locl.h, so -all callers get a prototype and avoid "implicit declaration" compiler -warnings. - -However, roken's ct.c itself does not include krb5_locl.h, so it -doesn't get a prototype for ct_memcmp(). This is dangerous, since if -the prototype ever slightly differs from the implementation for any -reason, it could cause a variety of issues. - -This also causes warnings 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. - -We cannot change ct.c, since it is an external source file. To fix -this, instead move the prototype of ct_memcmp() to our stub -kernel-only roken.h header, which is included by ct.c. Make -krb5_locl.h also include roken.h when building kernel code, so all of -the ct_memcmp() callers also get the prototype. - -While we're here, add some informative comments and an include guard -to our previously-blank roken.h stub. - -Written in collaboration with cwills@sinenomine.net. - -Reviewed-on: https://gerrit.openafs.org/15620 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit be236069e9d26339ed5f9939965bca0dd3f8bf4e) - -Change-Id: I1112881938b0585263871f8f83d63b8909b12f0d ---- - -diff --git a/src/crypto/hcrypto/kernel/roken.h b/src/crypto/hcrypto/kernel/roken.h -index e69de29..f8c2334 100644 ---- a/src/crypto/hcrypto/kernel/roken.h -+++ b/src/crypto/hcrypto/kernel/roken.h -@@ -0,0 +1,17 @@ -+#ifndef OPENAFS_HCRYPTO_KERNEL_ROKEN_H -+#define OPENAFS_HCRYPTO_KERNEL_ROKEN_H -+ -+/* -+ * This is a stub roken.h used for building roken code (or roken-using code) in -+ * the kernel. For userspace code, use a real roken.h. This just contains a few -+ * prototypes of roken functions we actually use in kernel code. -+ */ -+ -+#ifndef KERNEL -+# error "This header is for kernel code only" -+#endif -+ -+/* ct.c */ -+int ct_memcmp(const void *p1, const void *p2, size_t len); -+ -+#endif /* OPENAFS_HCRYPTO_KERNEL_ROKEN_H */ -diff --git a/src/crypto/rfc3961/krb5_locl.h b/src/crypto/rfc3961/krb5_locl.h -index eb279a9..6e70673 100644 ---- a/src/crypto/rfc3961/krb5_locl.h -+++ b/src/crypto/rfc3961/krb5_locl.h -@@ -5,6 +5,7 @@ - #ifdef KERNEL - - #include "config.h" -+#include <roken.h> - - #else - #include <afsconfig.h> -@@ -285,11 +286,6 @@ - krb5_error_code krb5_enctype_to_string(krb5_context context, - krb5_enctype etype, - char **string); --#ifdef KERNEL --/* Roken provides this in userspace, but we're on our own in the kernel. */ --int ct_memcmp(const void *p1, const void *p2, size_t len); --#endif -- - - #include "crypto.h" - diff --git a/d9f3a2c.diff b/d9f3a2c.diff deleted file mode 100644 index e1a7d9a..0000000 --- a/d9f3a2c.diff +++ /dev/null @@ -1,147 +0,0 @@ -From d9f3a2c6639e694c8d6fc4ad00d6a37d6e1f9bf6 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon, 11 Mar 2024 09:05:33 -0600 -Subject: [PATCH] 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, -strscpy(), cannot be used as a drop-in replacement as its currently a -Linux kernel specific function and there are differences in the returned -value. - -We can use roken's strlcpy() (provided in roken/strlcpy.c). - -Create a configure test to that defines its own strlcpy() to test -if the kernel doesn't provide one itself. Note, we need to use a -different function signature for strlcpy() from what the kernel might -have otherwise the test build succeeds when the kernel does provide a -strlcpy(). - -Update the OpenAFS kernel specific roken.h to define the prototype for -strlcpy when it's not present in the Linux kernel. We need to match the -defines used in the 'real' roken.h so the roken/strlcpy.c can build -properly. Add defines for ROKEN_LIB_FUNCTION, ROKEN_LIB_CALL and -ROKEN_LIB_VARIABLE to the kernel roken.h - -Update Linux's osi_machdep.h to include roken.h so the strlcpy protoype -is available. - -Update the Linux MakefileProto to include the strcpy-kernel object -when building the kernel module. - -Reviewed-on: https://gerrit.openafs.org/15646 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 30b18c165752e6d0ce7b6daa6a90453f5e5e6d17) - -Change-Id: I8013623e8f735d15bb7d4ac84ed0867f12b77783 ---- - -diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h -index 916a1df..263c863 100644 ---- a/src/afs/LINUX/osi_machdep.h -+++ b/src/afs/LINUX/osi_machdep.h -@@ -77,6 +77,7 @@ - #endif - - #include "afs/sysincludes.h" -+#include "roken.h" - - #if !defined(HAVE_LINUX_TIME_T) - typedef time64_t time_t; -diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4 -index 7f3000f..6f9d350 100644 ---- a/src/cf/linux-kernel-func.m4 -+++ b/src/cf/linux-kernel-func.m4 -@@ -252,6 +252,17 @@ - [inode_set_atime(NULL, 0, 0); - inode_set_mtime(NULL, 0, 0);]) - -+dnl Linux 6.8 removed the strlcpy() function. We test to see if we can redefine -+dnl a strlcpy() function. We use a totally different function signature to -+dnl to ensure that this fails when the kernel does provide strlcpy(). -+AC_CHECK_LINUX_FUNC([no_strlcpy], -+ [[#include <linux/string.h> -+ size_t strlcpy(char *d); -+ size_t strlcpy(char *d) { return strlen(d); }]], -+ [[static char buff[10]; -+ size_t s; -+ s = strlcpy(buff);]]) -+ - 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"], -diff --git a/src/crypto/hcrypto/kernel/roken.h b/src/crypto/hcrypto/kernel/roken.h -index f8c2334..6cb0601 100644 ---- a/src/crypto/hcrypto/kernel/roken.h -+++ b/src/crypto/hcrypto/kernel/roken.h -@@ -11,6 +11,35 @@ - # error "This header is for kernel code only" - #endif - -+/* -+ * The following function annotations are not needed when building for kernel -+ * space -+ */ -+#define ROKEN_LIB_FUNCTION -+#define ROKEN_LIB_CALL -+#define ROKEN_LIB_VARIABLE -+ -+/* -+ * Our HAVE_STRLCPY from autoconf refers to whether strlcpy() is available in -+ * userspace. Whether it's available in the kernel is another question, so -+ * override HAVE_STRLCPY here. Usually it is available (only a few cases lack -+ * it), so turn it on by default, and turn it off for a few cases below. -+ */ -+#undef HAVE_STRLCPY -+#define HAVE_STRLCPY 1 -+ -+#ifdef AFS_AIX_ENV -+# undef HAVE_STRLCPY -+#elif defined(AFS_LINUX_ENV) && defined(HAVE_LINUX_NO_STRLCPY) -+# undef HAVE_STRLCPY -+#endif -+ -+/* strlcpy.c */ -+#if defined (AFS_LINUX_ENV) && !defined(HAVE_STRLCPY) -+# define strlcpy rk_strlcpy -+ROKEN_LIB_FUNCTION size_t ROKEN_LIB_CALL strlcpy (char *, const char *, size_t); -+#endif -+ - /* ct.c */ - int ct_memcmp(const void *p1, const void *p2, size_t len); - -diff --git a/src/external/libafsdep b/src/external/libafsdep -index fb365df..9d36a30 100644 ---- a/src/external/libafsdep -+++ b/src/external/libafsdep -@@ -24,3 +24,4 @@ - heimdal/krb5/keyblock.c - heimdal/krb5/store-int.c - heimdal/roken/ct.c -+heimdal/roken/strlcpy.c -\ No newline at end of file -diff --git a/src/libafs/MakefileProto.LINUX.in b/src/libafs/MakefileProto.LINUX.in -index 8744ab8..6e62c8c 100644 ---- a/src/libafs/MakefileProto.LINUX.in -+++ b/src/libafs/MakefileProto.LINUX.in -@@ -42,7 +42,8 @@ - osi_ioctl.o \ - osi_proc.o \ - osi_vnodeops.o \ -- osi_pagecopy.o -+ osi_pagecopy.o \ -+ strlcpy-kernel.o - - AFS_OS_PAGOBJS = \ - osi_alloc.o \ -@@ -59,7 +60,8 @@ - osi_flush.o \ - <all> - osi_ioctl.o \ -- osi_pag_module.o -+ osi_pag_module.o \ -+ strlcpy-kernel.o - - AFS_OS_NFSOBJS = - diff --git a/db91384.diff b/db91384.diff deleted file mode 100644 index 86dd034..0000000 --- a/db91384.diff +++ /dev/null @@ -1,71 +0,0 @@ -From db913849047d0ec77e735f14dbbce63652209cc1 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu, 08 Feb 2024 16:10:57 -0700 -Subject: [PATCH] afs: Remove afs_DbgDisconFiles() - -The function afs_DbgDisconFiles() is not referenced anywhere within the -source tree. - -Remove the function afs_DbgDisconFiles(). - -The commit: 'disconnected-rw-20080922' (433afd4779) introduced -afs_DbgDisconFiles(), but the function was never used. - -This function is flagged due to a missing prototype 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. - -Reviewed-on: https://gerrit.openafs.org/15640 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 32bb90047782f41df521bba5ab4aba8b4ed34203) - -Change-Id: I61d06515845dbb18a370f7856285596514242e99 ---- - -diff --git a/src/afs/afs_disconnected.c b/src/afs/afs_disconnected.c -index 3b88585..1aaabd9 100644 ---- a/src/afs/afs_disconnected.c -+++ b/src/afs/afs_disconnected.c -@@ -1335,37 +1335,6 @@ - } - - /*! -- * Print list of disconnected files. -- * -- * \note Call with afs_DDirtyVCListLock read locked. -- */ --void --afs_DbgDisconFiles(void) --{ -- struct vcache *tvc; -- struct afs_q *q; -- int i = 0; -- -- afs_warn("List of dirty files: \n"); -- -- ObtainReadLock(&afs_disconDirtyLock); -- for (q = QPrev(&afs_disconDirty); q != &afs_disconDirty; q = QPrev(q)) { -- tvc = QEntry(q, struct vcache, dirtyq); -- -- afs_warn("Cell=%u Volume=%u VNode=%u Unique=%u\n", -- tvc->f.fid.Cell, -- tvc->f.fid.Fid.Volume, -- tvc->f.fid.Fid.Vnode, -- tvc->f.fid.Fid.Unique); -- -- i++; -- if (i >= 30) -- osi_Panic("afs_DbgDisconFiles: loop in dirty list\n"); -- } -- ReleaseReadLock(&afs_disconDirtyLock); --} -- --/*! - * Generate a fake fid for a disconnected shadow dir. - * Similar to afs_GenFakeFid, only that it uses the dhash - * to search for a uniquifier because a shadow dir lives only diff --git a/dffd0e1.diff b/dffd0e1.diff deleted file mode 100644 index 8c33471..0000000 --- a/dffd0e1.diff +++ /dev/null @@ -1,150 +0,0 @@ -From dffd0e1475f9fb346a146607335c9f9d847d4429 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Mon, 12 Feb 2024 08:59:32 -0700 -Subject: [PATCH] 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. - -Move these prototypes into afs_prototypes.h so that the prototypes are -available to both the caller and the implementation. - -Because the file holding the implementation does not have a prototypes, -afs_xioctl() is being flagged 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 Linux kernel with CONFIG_WERROR=y, the build -fails. - -Note that the function afs_xioctl() has platform specific -implementations. - -Reviewed-on: https://gerrit.openafs.org/15643 -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 575d986aa6c18ac27ea42fb66ae8b8cb0e27fe6c) - -Change-Id: If746111fdcf6a00459f524711623d322d5fc7942 ---- - -diff --git a/src/afs/FBSD/osi_vfsops.c b/src/afs/FBSD/osi_vfsops.c -index 6044bbe..8a979db 100644 ---- a/src/afs/FBSD/osi_vfsops.c -+++ b/src/afs/FBSD/osi_vfsops.c -@@ -18,7 +18,6 @@ - int afs_pbuf_freecnt = -1; - - extern int Afs_xsetgroups(); --extern int afs_xioctl(); - - static struct syscall_helper_data afs_syscalls[] = { - { -diff --git a/src/afs/HPUX/osi_vfsops.c b/src/afs/HPUX/osi_vfsops.c -index 0ddc227..46faca7 100644 ---- a/src/afs/HPUX/osi_vfsops.c -+++ b/src/afs/HPUX/osi_vfsops.c -@@ -290,7 +290,7 @@ - - afsc_link() - { -- extern int Afs_syscall(), afs_xioctl(), Afs_xsetgroups(); -+ extern int Afs_syscall(), Afs_xsetgroups(); - - /* For now nothing special is required during AFS initialization. */ - AFS_STATCNT(afsc_link); -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index 08fccb1..8aeeafa 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -613,10 +613,6 @@ - } - - --/* in afs_pioctl.c */ --extern int afs_xioctl(struct inode *ip, struct file *fp, unsigned int com, -- unsigned long arg); -- - static long afs_unlocked_xioctl(struct file *fp, unsigned int com, - unsigned long arg) { - return afs_xioctl(FILE_INODE(fp), fp, com, arg); -diff --git a/src/afs/NBSD/osi_kmod.c b/src/afs/NBSD/osi_kmod.c -index f658565..eefaf56 100644 ---- a/src/afs/NBSD/osi_kmod.c -+++ b/src/afs/NBSD/osi_kmod.c -@@ -44,7 +44,6 @@ - #include "afs/afsincludes.h" /* Afs-based standard headers */ - - extern int afs3_syscall(struct lwp *, const void *, register_t *); --extern int afs_xioctl(struct lwp *, const void *, register_t *); - extern int Afs_xsetgroups(struct lwp *, const void *, register_t *); - - #if !defined(AFS_NBSD60_ENV) -diff --git a/src/afs/NBSD/osi_vfsops.c b/src/afs/NBSD/osi_vfsops.c -index 7679ff1..5032a1d 100644 ---- a/src/afs/NBSD/osi_vfsops.c -+++ b/src/afs/NBSD/osi_vfsops.c -@@ -110,7 +110,6 @@ - #ifndef AFS_NBSD60_ENV - extern int sys_lkmnosys(struct lwp *, const void *, register_t *); - extern int afs3_syscall(struct lwp *, const void *, register_t *); --extern int afs_xioctl(struct lwp *, const void *, register_t *); - extern int Afs_xsetgroups(struct lwp *, const void *, register_t *); - static int afs_badcall(struct lwp *, const void *, register_t *); - -diff --git a/src/afs/OBSD/osi_vfsops.c b/src/afs/OBSD/osi_vfsops.c -index 830906c..e772926 100644 ---- a/src/afs/OBSD/osi_vfsops.c -+++ b/src/afs/OBSD/osi_vfsops.c -@@ -108,7 +108,7 @@ - /* from /usr/src/sys/kern/vfs_subr.c */ - extern void insmntque(struct vnode *, struct mount *); - --extern int sys_lkmnosys(), afs_xioctl(), Afs_xsetgroups(); -+extern int sys_lkmnosys(), Afs_xsetgroups(); - - static int lkmid = -1; - static int afs_badcall(struct proc *p, void *xx, register_t * yy); -diff --git a/src/afs/SOLARIS/osi_vfsops.c b/src/afs/SOLARIS/osi_vfsops.c -index c6c9ddf..f3f9bd3 100644 ---- a/src/afs/SOLARIS/osi_vfsops.c -+++ b/src/afs/SOLARIS/osi_vfsops.c -@@ -389,7 +389,6 @@ - afsinit(struct vfssw *vfsswp, int fstype) - #endif - { -- extern int afs_xioctl(); - extern int afs_xsetgroups(); - - AFS_STATCNT(afsinit); -diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h -index 9b3b1af..d7894dd 100644 ---- a/src/afs/afs_prototypes.h -+++ b/src/afs/afs_prototypes.h -@@ -812,6 +812,23 @@ - extern int HandleIoctl(struct vcache *avc, afs_int32 acom, - struct afs_ioctl *adata); - -+#if defined(AFS_SUN5_ENV) -+struct afs_ioctl_sys; -+extern int afs_xioctl(struct afs_ioctl_sys *uap, rval_t *rvp); -+#elif defined(AFS_LINUX_ENV) -+extern int afs_xioctl(struct inode *ip, struct file *fp, unsigned int com, unsigned long arg); -+#elif defined(AFS_DAWRIN_ENV) & !defined(AFS_DARWIN80) -+extern int afs_xioctl(afs_proc_t *p, struct ioctl_args *uap, register_t *retval); -+#elif defined(AFS_FBSD_ENV) -+extern int afs_xioctl(struct thread *td, struct ioctl_args *uap, register_t *retval); -+#elif defined(AFS_NBSD_ENV) -+extern int afs_xioctl(afs_proc_t *p, const struct sys_ioctl_args *uap, register_t *retval); -+#elif defined(AFS_XBSD_ENV) -+extern int afs_xioctl(afs_proc_t *p, const struct ioctl_args *uap, register_t *retval); -+#elif defined(UKERNEL) -+extern int afs_xioctl(void); -+#endif -+ - - /* afs_segments.c */ - extern int afs_StoreAllSegments(struct vcache *avc, diff --git a/e0f425a.diff b/e0f425a.diff deleted file mode 100644 index a769c71..0000000 --- a/e0f425a.diff +++ /dev/null @@ -1,67 +0,0 @@ -From e0f425a3d8bccb48a69f27dff209e32cf05f4305 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Fri, 12 Jan 2024 08:56:31 -0700 -Subject: [PATCH] afs: Remove DFlushDCache() - -The function DFlushDcache() is not referenced anywhere within the -source tree. - -Remove the function DFlushDCache(). - -The commit: 'disconnected-shadow-directory-fixes-20090121' (4045f3d535) -removed the code reference to DFlushDCache() and the commit: -"dir: Prototype and function name cleanup" (5ad1e6cb90) removed the -function prototype. The function was introduced in the commit: -"disconnected-flush-before-shadowing-20090119" (e1cc987ea5). - -This function is flagged due to a missing prototype 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. - -Reviewed-on: https://gerrit.openafs.org/15615 -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 432ac5810e51bb5bb2cf1df0bfebc64d1c4d7a39) - -Change-Id: Ib8ab79c76c633632215e02235f47fdb1d744e721 ---- - -diff --git a/src/afs/afs_buffer.c b/src/afs/afs_buffer.c -index 5552d1c..9538c68 100644 ---- a/src/afs/afs_buffer.c -+++ b/src/afs/afs_buffer.c -@@ -516,31 +516,6 @@ - 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; 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/e157f8f.diff b/e157f8f.diff deleted file mode 100644 index 5ef0a16..0000000 --- a/e157f8f.diff +++ /dev/null @@ -1,473 +0,0 @@ -From e157f8f39bd367151f5a9264c7d4ce8bcbed08fb Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Thu, 29 Feb 2024 17:53:31 -0700 -Subject: [PATCH] afs: Add static attribute to internal functions - -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. - -There are no functional changes in this commit. - -Reviewed-on: https://gerrit.openafs.org/15625 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit efee796f28b53bf3ffc03186f81790c36c23c94c) - -Change-Id: I0d923a65731f825d6c190056b0ccc3d362236706 ---- - -diff --git a/src/afs/LINUX/osi_file.c b/src/afs/LINUX/osi_file.c -index e8c2980..cb91ecb 100644 ---- a/src/afs/LINUX/osi_file.c -+++ b/src/afs/LINUX/osi_file.c -@@ -47,7 +47,7 @@ - #endif - - /* Old export ops: decode_fh will call back here. Accept any dentry it suggests */ --int -+static int - afs_fh_acceptable(void *context, struct dentry *dp) - { - return 1; -diff --git a/src/afs/LINUX/osi_module.c b/src/afs/LINUX/osi_module.c -index fdc347d..30ac048 100644 ---- a/src/afs/LINUX/osi_module.c -+++ b/src/afs/LINUX/osi_module.c -@@ -64,7 +64,7 @@ - } - #endif - --int __init -+static int __init - afs_init(void) - { - int err; -@@ -114,7 +114,7 @@ - return 0; - } - --void __exit -+static void __exit - afs_cleanup(void) - { - afs_shutdown_pagecopy(); -diff --git a/src/afs/LINUX/osi_pag_module.c b/src/afs/LINUX/osi_pag_module.c -index e832c5a..24b938f 100644 ---- a/src/afs/LINUX/osi_pag_module.c -+++ b/src/afs/LINUX/osi_pag_module.c -@@ -58,7 +58,7 @@ - struct user_namespace *afs_ns; - #endif - --int __init -+static int __init - afspag_init(void) - { - #if !defined(EXPORTED_PROC_ROOT_FS) -@@ -90,7 +90,7 @@ - return 0; - } - --void __exit -+static void __exit - afspag_cleanup(void) - { - #if !defined(EXPORTED_PROC_ROOT_FS) -diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c -index ba78bce..4ac63b1 100644 ---- a/src/afs/afs_call.c -+++ b/src/afs/afs_call.c -@@ -267,7 +267,7 @@ - } - } - --void -+static void - afs_DaemonOp(long parm, long parm2, long parm3, long parm4, long parm5, - long parm6) - { -@@ -436,7 +436,7 @@ - return 0; - } - --void -+static void - # if defined(AFS_LINUX_ENV) && !defined(INIT_WORK_HAS_DATA) - afsd_launcher(struct work_struct *work) - # else -@@ -457,7 +457,7 @@ - # endif /* !HAVE_LINUX_KTHREAD_RUN */ - } - --void -+static void - afs_DaemonOp(long parm, long parm2, long parm3, long parm4, long parm5, - long parm6) - { -diff --git a/src/afs/afs_disconnected.c b/src/afs/afs_disconnected.c -index 1aaabd9..03ff90f 100644 ---- a/src/afs/afs_disconnected.c -+++ b/src/afs/afs_disconnected.c -@@ -102,7 +102,7 @@ - * - * \return Mask of operations. - */ --int -+static int - afs_GenStoreStatus(struct vcache *avc, struct AFSStoreStatus *astat) - { - if (!avc || !astat || !avc->f.ddirty_flags) -@@ -157,7 +157,7 @@ - * - * \return 0 on success, -1 on failure - */ --int -+static int - afs_GetParentDirFid(struct vcache *avc, struct VenusFid *afid) - { - struct dcache *tdc; -@@ -234,7 +234,7 @@ - * \param deleted Has this file been deleted? If yes, use the shadow - * dir for looking up the name. - */ --int -+static int - afs_GetVnodeName(struct vcache *avc, struct VenusFid *afid, char *aname, - int deleted) - { -@@ -358,7 +358,7 @@ - * - * \note afs_DDirtyVCListLock must be write locked. - */ --int -+static int - afs_CheckDeletedChildren(struct vcache *avc) - { - struct dcache *tdc; -@@ -452,7 +452,7 @@ - * \param old_fid The current dir's fid. - * \param new_fid The new dir's fid. - */ --void -+static void - afs_FixChildrenFids(struct VenusFid *old_fid, struct VenusFid *new_fid) - { - struct dcache *tdc; -@@ -499,7 +499,7 @@ - * be deferred to later in the resync process - */ - --int -+static int - afs_GetParentVCache(struct vcache *avc, int deleted, struct VenusFid *afid, - char *aname, struct vcache **adp) - { -@@ -548,7 +548,7 @@ - * - Get the new name from the current dir. - * - Old dir fid and new dir fid are collected along the way. - * */ --int -+static int - afs_ProcessOpRename(struct vcache *avc, struct vrequest *areq) - { - struct VenusFid old_pdir_fid, new_pdir_fid; -@@ -651,7 +651,7 @@ - * - Handle errors. - * - Reorder vhash and dcaches in their hashes, using the newly acquired fid. - */ --int -+static int - afs_ProcessOpCreate(struct vcache *avc, struct vrequest *areq, - afs_ucred_t *acred) - { -@@ -921,7 +921,7 @@ - * - * \note avc must be write locked. - */ --int -+static int - afs_ProcessOpRemove(struct vcache *avc, struct vrequest *areq) - { - char *tname = NULL; -@@ -1022,7 +1022,7 @@ - * - * \return 0 for success. On failure, other error codes. - */ --int -+static int - afs_SendChanges(struct vcache *avc, struct vrequest *areq) - { - struct afs_conn *tc; -diff --git a/src/afs/afs_fetchstore.c b/src/afs/afs_fetchstore.c -index 63b370d..97d0671 100644 ---- a/src/afs/afs_fetchstore.c -+++ b/src/afs/afs_fetchstore.c -@@ -77,14 +77,14 @@ - - - --afs_int32 -+static afs_int32 - rxfs_storeUfsPrepare(void *r, afs_uint32 size, afs_uint32 *tlen) - { - *tlen = (size > AFS_LRALLOCSIZ ? AFS_LRALLOCSIZ : size); - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storeMemPrepare(void *r, afs_uint32 size, afs_uint32 *tlen) - { - afs_int32 code; -@@ -105,7 +105,7 @@ - return code; - } - --afs_int32 -+static afs_int32 - rxfs_storeUfsRead(void *r, struct osi_file *tfile, afs_uint32 offset, - afs_uint32 tlen, afs_uint32 *bytesread) - { -@@ -126,7 +126,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storeMemRead(void *r, struct osi_file *tfile, afs_uint32 offset, - afs_uint32 tlen, afs_uint32 *bytesread) - { -@@ -142,7 +142,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storeMemWrite(void *r, afs_uint32 l, afs_uint32 *byteswritten) - { - afs_int32 code; -@@ -159,7 +159,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storeUfsWrite(void *r, afs_uint32 l, afs_uint32 *byteswritten) - { - afs_int32 code; -@@ -179,7 +179,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storePadd(void *rock, afs_uint32 size) - { - afs_int32 code = 0; -@@ -203,7 +203,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_storeStatus(void *rock) - { - struct rxfs_storeVariables *v = (struct rxfs_storeVariables *)rock; -@@ -213,7 +213,7 @@ - return 1; - } - --afs_int32 -+static afs_int32 - rxfs_storeClose(void *r, struct AFSFetchStatus *OutStatus, int *doProcessFS) - { - afs_int32 code; -@@ -236,7 +236,7 @@ - return code; - } - --afs_int32 -+static afs_int32 - rxfs_storeDestroy(void **r, afs_int32 code) - { - struct rxfs_storeVariables *v = (struct rxfs_storeVariables *)*r; -@@ -255,7 +255,7 @@ - return code; - } - --afs_int32 -+static afs_int32 - afs_GenericStoreProc(struct storeOps *ops, void *rock, - struct dcache *tdc, int *shouldwake, - afs_size_t *bytesXferred) -@@ -353,7 +353,7 @@ - #endif - }; - --afs_int32 -+static afs_int32 - rxfs_storeInit(struct vcache *avc, struct afs_conn *tc, - struct rx_connection *rxconn, afs_size_t base, - afs_size_t bytes, afs_size_t length, -@@ -437,7 +437,7 @@ - * \param ops pointer to the block of storeOps to be used for this operation - * \param rock pointer to the opaque protocol-specific data of this operation - */ --afs_int32 -+static afs_int32 - afs_CacheStoreDCaches(struct vcache *avc, struct dcache **dclist, - afs_size_t bytes, afs_hyper_t *anewDV, int *doProcessFS, - struct AFSFetchStatus *OutStatus, afs_uint32 nchunks, -@@ -720,7 +720,7 @@ - afs_int32 iovmax; - }; - --afs_int32 -+static afs_int32 - rxfs_fetchUfsRead(void *r, afs_uint32 size, afs_uint32 *bytesread) - { - afs_int32 code; -@@ -738,7 +738,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_fetchMemRead(void *r, afs_uint32 tlen, afs_uint32 *bytesread) - { - afs_int32 code; -@@ -755,7 +755,7 @@ - } - - --afs_int32 -+static afs_int32 - rxfs_fetchMemWrite(void *r, struct osi_file *fP, afs_uint32 offset, - afs_uint32 tlen, afs_uint32 *byteswritten) - { -@@ -771,7 +771,7 @@ - return 0; - } - --afs_int32 -+static afs_int32 - rxfs_fetchUfsWrite(void *r, struct osi_file *fP, afs_uint32 offset, - afs_uint32 tlen, afs_uint32 *byteswritten) - { -@@ -787,7 +787,7 @@ - } - - --afs_int32 -+static afs_int32 - rxfs_fetchClose(void *r, struct vcache *avc, struct dcache * adc, - struct afs_FetchOutput *o) - { -@@ -814,7 +814,7 @@ - return code; - } - --afs_int32 -+static afs_int32 - rxfs_fetchDestroy(void **r, afs_int32 code) - { - struct rxfs_fetchVariables *v = (struct rxfs_fetchVariables *)*r; -@@ -833,7 +833,7 @@ - return code; - } - --afs_int32 -+static afs_int32 - rxfs_fetchMore(void *r, afs_int32 *length, afs_uint32 *moredata) - { - afs_int32 code; -@@ -882,7 +882,7 @@ - rxfs_fetchDestroy - }; - --afs_int32 -+static afs_int32 - rxfs_fetchInit(struct afs_conn *tc, struct rx_connection *rxconn, - struct vcache *avc, afs_offs_t base, - afs_uint32 size, afs_int32 *alength, struct dcache *adc, -diff --git a/src/afs/afs_icl.c b/src/afs/afs_icl.c -index 42b4a0c..08a1660 100644 ---- a/src/afs/afs_icl.c -+++ b/src/afs/afs_icl.c -@@ -34,7 +34,7 @@ - int afs_icl_inited = 0; - - /* init function, called once, under afs_icl_lock */ --int -+static int - afs_icl_Init(void) - { - afs_icl_inited = 1; -@@ -539,7 +539,7 @@ - #endif - - --void -+static void - afs_icl_AppendOne(struct afs_icl_log *logp, int type, long parm) - { - if (type) { -diff --git a/src/afs/afs_pag_cred.c b/src/afs/afs_pag_cred.c -index 3dce854..e77cf8a 100644 ---- a/src/afs/afs_pag_cred.c -+++ b/src/afs/afs_pag_cred.c -@@ -32,7 +32,7 @@ - static struct afspag_cell *primary_cell = 0; - - --struct afspag_cell * -+static struct afspag_cell * - afspag_GetCell(char *acell) - { - struct afspag_cell *tcell; -@@ -66,7 +66,7 @@ - } - - --struct afspag_cell * -+static struct afspag_cell * - afspag_GetPrimaryCell(void) - { - struct afspag_cell *tcell; -diff --git a/src/afs/afs_server.c b/src/afs/afs_server.c -index 3674eff..9d2d93c 100644 ---- a/src/afs/afs_server.c -+++ b/src/afs/afs_server.c -@@ -556,7 +556,7 @@ - } - } - --void -+static void - CkSrv_GetCaps(int nconns, struct rx_connection **rxconns, - struct afs_conn **conns) - { -diff --git a/src/afs/afs_vcache.c b/src/afs/afs_vcache.c -index e72b45e..f500b65 100644 ---- a/src/afs/afs_vcache.c -+++ b/src/afs/afs_vcache.c -@@ -727,7 +727,7 @@ - #endif - } - --void -+static void - afs_PostPopulateVCache(struct vcache *avc, struct VenusFid *afid, int seq) - { - /* diff --git a/e428053.diff b/e428053.diff deleted file mode 100644 index 6161fb6..0000000 --- a/e428053.diff +++ /dev/null @@ -1,65 +0,0 @@ -From e428053b5bc1250fdcc3ed8ac52ee798d96ad284 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Tue, 05 Mar 2024 07:40:08 -0700 -Subject: [PATCH] rxgen: Declare generated PKG_OpCodeStats() - -The function {PKG}_OpCodeStats() is generated by rxgen, however a -prototype for the function is not generated. - -The functions h_ProcMainBody_setup() and h_HeadofOldStyleProc_setup() -in rpc_parse.c emit prototypes for {PKG}_ExecuteRequest() and -{PKG}_TranslateOpCode(), but do not emit a prototype for -{PKG}_OpCodeStats(). - -Update rxgen to emit a function prototype for {PKG}_OpCodeStats() in the -generated header file. - -Use a variable to point to "PackagePrefix[PackageIndex]" in -h_ProcMainBody_setup to improve readability. - -{PKG}_OpCodeStats(), specifically RXSTATS_OpCodeStats(), is flagged due -to a missing prototype 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. - -Reviewed-on: https://gerrit.openafs.org/15631 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 26bb4d143b31ba027cf2721ac731df67a174c43b) - -Change-Id: I9072d22d142b5b7a2f59b0cfc4026066ef1d9501 ---- - -diff --git a/src/rxgen/rpc_parse.c b/src/rxgen/rpc_parse.c -index 59854f4..e648a66 100644 ---- a/src/rxgen/rpc_parse.c -+++ b/src/rxgen/rpc_parse.c -@@ -2148,10 +2148,14 @@ - static void - h_ProcMainBody_setup(void) - { -+ char *pprefix = PackagePrefix[PackageIndex]; - f_print(fout,"\nextern int %s%sExecuteRequest(struct rx_call *);\n", -- prefix, PackagePrefix[PackageIndex]); -+ prefix, pprefix); - f_print(fout,"extern char * %s%sTranslateOpCode(int op);\n", prefix, -- PackagePrefix[PackageIndex]); -+ pprefix); -+ f_print(fout,"extern struct %s%sstats *%s%sOpCodeStats(int op);\n", -+ prefix, pprefix, -+ prefix, pprefix); - } - - static void -@@ -2165,6 +2169,8 @@ - f_print(fout,"\nextern int %sOpCodeIndex(int op);\n", PackagePrefix[PackageIndex]); - f_print(fout, "extern char * %s%sTranslateOpCode(int op);\n", - prefix, pprefix); -+ f_print(fout, "extern struct %s%sstats *%s%sOpCodeStats(int op);\n", -+ prefix, pprefix, prefix, pprefix); - } - - void diff --git a/ef7b8c5.diff b/ef7b8c5.diff deleted file mode 100644 index 209a4e5..0000000 --- a/ef7b8c5.diff +++ /dev/null @@ -1,107 +0,0 @@ -From ef7b8c578790d84c89f09c3236f1718725770e75 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed, 07 Feb 2024 14:51:23 -0700 -Subject: [PATCH] cf: Add function prototypes for linux conftest - -The Linux 6.8 commit: - 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f) - -added the compiler flags -Wmissing-declarations and -Wmissing-prototypes -as defaults for all kernel modules builds. This change causes configure -to fail for various Linux kernel tests. - -Update the template used to create the conftest.c file to provide a -function declaration for conftest(). - -Use a 'static' attribute when defining functions used within tests. - -Note: 2 configure tests (LINUX_INIT_WORK_AS_DATA and -LINUX_IOP_CREATE_TAKES_MODE_T) defined nested functions. Relocate the -nested functions to outside the body of conftest() to avoid compiler -errors due to nested function definitions. - -Reviewed-on: https://gerrit.openafs.org/15614 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Andrew Deason <adeason@sinenomine.net> -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> ---- - -diff --git a/src/cf/linux-test1.m4 b/src/cf/linux-test1.m4 -index 7bb5a67..010a446 100644 ---- a/src/cf/linux-test1.m4 -+++ b/src/cf/linux-test1.m4 -@@ -16,7 +16,7 @@ - /* end confdefs.h */ - #include <linux/module.h> - $1 -- -+void conftest(void); - void conftest(void) - { - $2 -@@ -201,7 +201,7 @@ - CPPFLAGS="$CPPFLAGS -Werror" - AC_TRY_KBUILD( - [$4 -- $5 op($6) { return ($5)0; };], -+ static $5 op($6) { return ($5)0; };], - [static struct $1 ops; ops.$2 = op;], - AS_VAR_SET([ac_linux_operation], [yes]), - AS_VAR_SET([ac_linux_operation], [no])) -diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 -index 3596b6a..7889c90 100644 ---- a/src/cf/linux-test4.m4 -+++ b/src/cf/linux-test4.m4 -@@ -400,9 +400,9 @@ - AC_CHECK_LINUX_BUILD([whether INIT_WORK has a _data argument], - [ac_cv_linux_init_work_has_data], - [#include <linux/kernel.h> --#include <linux/workqueue.h>], --[ --void f(struct work_struct *w) {} -+#include <linux/workqueue.h> -+static void f(struct work_struct *w) {}], -+[ - struct work_struct *w; - int *i; - INIT_WORK(w,f,i);], -@@ -493,7 +493,7 @@ - AC_CHECK_LINUX_BUILD([whether kmem_cache_create constructor takes a void pointer], - [ac_cv_linux_kmem_cache_create_ctor_takes_void], - [#include <linux/slab.h> -- void _ctor(void *v) { };], -+ static void _ctor(void *v) { };], - [kmem_cache_create(NULL, 0, 0, 0, _ctor);], - [KMEM_CACHE_CTOR_TAKES_VOID], - [define if kmem_cache_create constructor takes a single void ptr], -@@ -667,7 +667,7 @@ - AC_CHECK_LINUX_BUILD([whether 4.11+ inode.i_op->getattr takes a struct path argument], - [ac_cv_linux_iop_getattr_takes_path_struct], - [#include <linux/fs.h> -- int _getattr(const struct path *path, struct kstat *stat, u32 request_mask, -+ static int _getattr(const struct path *path, struct kstat *stat, u32 request_mask, - unsigned int sync_mode) {return 0;}; - struct inode_operations _i_ops;], - [_i_ops.getattr = _getattr;], -@@ -692,10 +692,10 @@ - AC_DEFUN([LINUX_IOP_CREATE_TAKES_UMODE_T], [ - AC_CHECK_LINUX_BUILD([whether inode.i_op->create takes a umode_t argument], - [ac_cv_linux_iop_create_takes_umode_t], -- [#include <linux/fs.h>], -+ [#include <linux/fs.h> -+ static int _create(struct inode *i, struct dentry *d, umode_t m, struct nameidata *n) -+ {return 0;};], - [static struct inode_operations _i_ops; -- int _create(struct inode *i, struct dentry *d, umode_t m, struct nameidata *n) -- {return 0;}; - _i_ops.create = _create;], - [IOP_CREATE_TAKES_UMODE_T], - [define if inode.i_op->create takes a umode_t argument], diff --git a/f5bafb0.diff b/f5bafb0.diff deleted file mode 100644 index 2a794a4..0000000 --- a/f5bafb0.diff +++ /dev/null @@ -1,78 +0,0 @@ -From f5bafb0680a063d710b6e5e8ccf833f1dd371896 Mon Sep 17 00:00:00 2001 -From: Cheyenne Wills <cwills@sinenomine.net> -Date: Wed, 07 Feb 2024 19:34:29 -0700 -Subject: [PATCH] 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 -implement rxk_NewSocketHost() do not have a prototype (but when the -rx_kcommon.c implementation is used it does have a prototype, since -rx_kcommon.c is the "referencing .c file"). - -Add the prototype for rxk_NewSocketHost() to rx_prototypes.h and -remove the prototype from rx_kcommon.c - -The prototypes for the functions rx_DebugOnOff() and rx_StatsOnOff() -are defined within rx_prototypes.h, but are within a preprocessor -conditional for AFS_NT40_ENV, however the implementation for these -2 functions do not have the preprocessor conditional. - -Rearrange the prototypes for rx_DebugOnOff() and rx_StatsOnOff() so they -are outside the AFS_NT40_ENV preprocessor conditional. - -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. - -There are no functional changes in this commit. - -Reviewed-on: https://gerrit.openafs.org/15624 -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 8528c36b96fe2935f42188caabf4feed0d5dbcbd) - -Change-Id: Ieae8be7f89f5c675c6580d8cfb02ea77ce4088f7 ---- - -diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c -index b6a069c..c90df3d 100644 ---- a/src/rx/rx_kcommon.c -+++ b/src/rx/rx_kcommon.c -@@ -33,7 +33,6 @@ - int (*rxk_GetPacketProc) (struct rx_packet **ahandle, int asize); - #endif - --osi_socket *rxk_NewSocketHost(afs_uint32 ahost, short aport); - extern struct interfaceAddr afs_cb_interface; - - rxk_ports_t rxk_ports; -diff --git a/src/rx/rx_prototypes.h b/src/rx/rx_prototypes.h -index 87a1049..6e1ae56 100644 ---- a/src/rx/rx_prototypes.h -+++ b/src/rx/rx_prototypes.h -@@ -24,9 +24,10 @@ - - extern int rx_Init(u_int port); - extern int rx_InitHost(u_int host, u_int port); --#ifdef AFS_NT40_ENV -+ - extern void rx_DebugOnOff(int on); - extern void rx_StatsOnOff(int on); -+#ifdef AFS_NT40_ENV - extern void rx_StartClientThread(void); - #endif - extern void rx_StartServer(int donateMe); -@@ -332,6 +333,8 @@ - extern void rxk_init(void); - # endif - -+extern osi_socket *rxk_NewSocketHost(afs_uint32 ahost, short aport); -+ - /* UKERNEL/rx_knet.c */ - # ifdef UKERNEL - extern void afs_rxevent_daemon(void); diff --git a/fca6fd9.diff b/fca6fd9.diff deleted file mode 100644 index 1e79724..0000000 --- a/fca6fd9.diff +++ /dev/null @@ -1,35 +0,0 @@ -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] 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 -allow for more compiler optimization. - -Reviewed-on: https://gerrit.openafs.org/13226 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -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> ---- - -diff --git a/src/afs/afs_dcache.c b/src/afs/afs_dcache.c -index 3572f2f..46d0bdb 100644 ---- a/src/afs/afs_dcache.c -+++ b/src/afs/afs_dcache.c -@@ -1674,7 +1674,7 @@ - * - * \return The new dcache. - */ --struct dcache * -+static struct dcache * - afs_AllocDCache(struct vcache *avc, afs_int32 chunk, afs_int32 lock, - struct VenusFid *ashFid) - { diff --git a/openafs-1.8.11-doc.tar.bz2 b/openafs-1.8.11-doc.tar.bz2 deleted file mode 100644 index d3b140c..0000000 --- a/openafs-1.8.11-doc.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ac6ab3f9d93d55de17757903b0493fc9020f1e0402ea319e61208b3900b607c -size 3779721 diff --git a/openafs-1.8.11-doc.tar.bz2.md5 b/openafs-1.8.11-doc.tar.bz2.md5 deleted file mode 100644 index 083699e..0000000 --- a/openafs-1.8.11-doc.tar.bz2.md5 +++ /dev/null @@ -1 +0,0 @@ -174eef8826e76cc5cc952185659e59d3 ../1.8.11/openafs-1.8.11-doc.tar.bz2 diff --git a/openafs-1.8.11-doc.tar.bz2.sha256 b/openafs-1.8.11-doc.tar.bz2.sha256 deleted file mode 100644 index 715fbaf..0000000 --- a/openafs-1.8.11-doc.tar.bz2.sha256 +++ /dev/null @@ -1 +0,0 @@ -3ac6ab3f9d93d55de17757903b0493fc9020f1e0402ea319e61208b3900b607c openafs-1.8.11-doc.tar.bz2 diff --git a/openafs-1.8.11-src.tar.bz2 b/openafs-1.8.11-src.tar.bz2 deleted file mode 100644 index c5597a6..0000000 --- a/openafs-1.8.11-src.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2efb4710996b7d23198b53c56295a8f9e24e8a555317c5fc63b8125a3714ecd -size 15042304 diff --git a/openafs-1.8.11-src.tar.bz2.md5 b/openafs-1.8.11-src.tar.bz2.md5 deleted file mode 100644 index 71a9c11..0000000 --- a/openafs-1.8.11-src.tar.bz2.md5 +++ /dev/null @@ -1 +0,0 @@ -0739265979a6a9ea4309c610222cff35 ../1.8.11/openafs-1.8.11-src.tar.bz2 diff --git a/openafs-1.8.11-src.tar.bz2.sha256 b/openafs-1.8.11-src.tar.bz2.sha256 deleted file mode 100644 index 0f4c078..0000000 --- a/openafs-1.8.11-src.tar.bz2.sha256 +++ /dev/null @@ -1 +0,0 @@ -e2efb4710996b7d23198b53c56295a8f9e24e8a555317c5fc63b8125a3714ecd openafs-1.8.11-src.tar.bz2 diff --git a/openafs-stable-1_8_x-doc.tar.bz2 b/openafs-stable-1_8_x-doc.tar.bz2 new file mode 100644 index 0000000..dbafd7d --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7a53059a4ce55ffe17b1e3d4f3ff3f0a16aa6e0121bbd3c76a581352dc94987 +size 3374716 diff --git a/openafs-stable-1_8_x-doc.tar.bz2.md5 b/openafs-stable-1_8_x-doc.tar.bz2.md5 new file mode 100644 index 0000000..b7d68ed --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2.md5 @@ -0,0 +1 @@ +d2a566c33aaf8d3ab7c8e4c15558f90e /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 diff --git a/openafs-stable-1_8_x-doc.tar.bz2.sha256 b/openafs-stable-1_8_x-doc.tar.bz2.sha256 new file mode 100644 index 0000000..14f8ddb --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2.sha256 @@ -0,0 +1 @@ +f7a53059a4ce55ffe17b1e3d4f3ff3f0a16aa6e0121bbd3c76a581352dc94987 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 diff --git a/openafs-stable-1_8_x-src.tar.bz2 b/openafs-stable-1_8_x-src.tar.bz2 new file mode 100644 index 0000000..ca41d2b --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:989dcdce5c9bf3c5de42fc5a9856a500634c48483d652567af9916d082dc9d27 +size 14547626 diff --git a/openafs-stable-1_8_x-src.tar.bz2.md5 b/openafs-stable-1_8_x-src.tar.bz2.md5 new file mode 100644 index 0000000..ff05207 --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2.md5 @@ -0,0 +1 @@ +a6123d9cb9a85943c8604d76980cdb2c /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 diff --git a/openafs-stable-1_8_x-src.tar.bz2.sha256 b/openafs-stable-1_8_x-src.tar.bz2.sha256 new file mode 100644 index 0000000..ed622d7 --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2.sha256 @@ -0,0 +1 @@ +989dcdce5c9bf3c5de42fc5a9856a500634c48483d652567af9916d082dc9d27 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 diff --git a/openafs.changes b/openafs.changes index 8c916c5..baf1414 100644 --- a/openafs.changes +++ b/openafs.changes @@ -1,38 +1,11 @@ ------------------------------------------------------------------- -Thu Apr 18 09:16:44 UTC 2024 - Christof Hanke <christof.hanke@mpcdf.mpg.de> +Fri Jun 14 05:47:03 UTC 2024 - Christof Hanke <christof.hanke@mpcdf.mpg.de> -- update to openafs-1.8.11 -- apply upstream patches for kernel 6.8 - * 056a7a8.diff - * 05ac614.diff - * 073adec.diff - * 0d9f6cf.diff - * 0e983a9.diff - * 112fb94.diff - * 1e1bf8e.diff - * 2056ce8.diff - * 5312d06.diff - * 67e48c8.diff - * 6b20756.diff - * 743d72f.diff - * 7cae97b.diff - * 81b910a.diff - * 87ab04a.diff - * 9f052c1.diff - * a14a9ad.diff - * a87845d.diff - * aae8b00.diff - * b77b304.diff - * d1c89ac.diff - * d9f3a2c.diff - * db91384.diff - * dffd0e1.diff - * e0f425a.diff - * e157f8f.diff - * e428053.diff - * ef7b8c5.diff - * f5bafb0.diff - * fca6fd9.diff +- change source-code base to git branch stable-1_8_x + * required for keeping up with Linux kernel development. +- new versioning scheme: openafs-$LAST_OFFICIAL_RELEASE.git$DATE_OF_NEWEST_COMMIT +- add note in RELNOTES about this change +- update ChangeLog from git ------------------------------------------------------------------- Mon Feb 26 12:45:02 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org> diff --git a/openafs.spec b/openafs.spec index 4451c5b..cb7e900 100644 --- a/openafs.spec +++ b/openafs.spec @@ -57,11 +57,11 @@ # used for %setup only # leave upstream tar-balls untouched for integrity checks. -%define upstream_version 1.8.11 +%define upstream_version stable-1_8_x Name: openafs -Version: 1.8.11 +Version: 1.8.11.g20240530 Release: 0 Summary: OpenAFS Distributed File System License: IPL-1.0 @@ -103,37 +103,6 @@ Source58: openafs.cacheinfo Source98: kmp_only.files Source99: openafs.changes -# PATCH-FIX-UPSTREAM fix build with kernel 6.8 -Patch1: ef7b8c5.diff -Patch2: e0f425a.diff -Patch3: 9f052c1.diff -Patch4: 073adec.diff -Patch5: a87845d.diff -Patch6: aae8b00.diff -Patch7: 5312d06.diff -Patch8: 056a7a8.diff -Patch9: db91384.diff -Patch10: 67e48c8.diff -Patch11: 112fb94.diff -Patch12: 87ab04a.diff -Patch13: 0d9f6cf.diff -Patch14: dffd0e1.diff -Patch15: f5bafb0.diff -Patch16: 6b20756.diff -Patch17: 05ac614.diff -Patch18: 743d72f.diff -Patch19: e157f8f.diff -Patch20: 2056ce8.diff -Patch21: d1c89ac.diff -Patch22: d9f3a2c.diff -Patch23: 7cae97b.diff -Patch24: 81b910a.diff -Patch25: 1e1bf8e.diff -Patch26: a14a9ad.diff -Patch27: b77b304.diff -Patch28: fca6fd9.diff -Patch29: e428053.diff - # PATCH-HANDLE-BACKPORTS # some kernel-features from 6.5 are apparently in 6.4 Patch99: handle_backports.diff @@ -351,36 +320,6 @@ done %patch -P 99 -p1 %endif -%patch -P 1 -p1 -%patch -P 2 -p1 -%patch -P 3 -p1 -%patch -P 4 -p1 -%patch -P 5 -p1 -%patch -P 6 -p1 -%patch -P 7 -p1 -%patch -P 8 -p1 -%patch -P 9 -p1 -%patch -P 10 -p1 -%patch -P 11 -p1 -%patch -P 12 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 -%patch -P 16 -p1 -%patch -P 17 -p1 -%patch -P 18 -p1 -%patch -P 19 -p1 -%patch -P 20 -p1 -%patch -P 21 -p1 -%patch -P 22 -p1 -%patch -P 23 -p1 -%patch -P 24 -p1 -%patch -P 25 -p1 -%patch -P 26 -p1 -%patch -P 27 -p1 -%patch -P 28 -p1 -%patch -P 29 -p1 - ./regen.sh %build