diff options
Diffstat (limited to '0017-afs-Move-function-prototypes-into-headers.patch')
-rw-r--r-- | 0017-afs-Move-function-prototypes-into-headers.patch | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/0017-afs-Move-function-prototypes-into-headers.patch b/0017-afs-Move-function-prototypes-into-headers.patch new file mode 100644 index 000000000000..81d2767af097 --- /dev/null +++ b/0017-afs-Move-function-prototypes-into-headers.patch @@ -0,0 +1,144 @@ +From 1505e0d19cba9b66d0e357f6eafdde15f638eb2e Mon Sep 17 00:00:00 2001 +From: Cheyenne Wills <cwills@sinenomine.net> +Date: Thu, 15 Feb 2024 09:00:05 -0700 +Subject: [PATCH 17/29] afs: Move function prototypes into headers + +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 +--- + src/afs/LINUX/osi_ioctl.c | 3 --- + src/afs/LINUX/osi_syscall.c | 3 --- + src/afs/LINUX/osi_vnodeops.c | 2 -- + src/afs/VNOPS/afs_vnop_lookup.c | 2 -- + src/afs/afs_nfsclnt.c | 1 - + src/afs/afs_prototypes.h | 7 +++++++ + 6 files changed, 7 insertions(+), 11 deletions(-) + +diff --git a/src/afs/LINUX/osi_ioctl.c b/src/afs/LINUX/osi_ioctl.c +index fbdee29cb..3e797745c 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 5e9e5194a..dc78da874 100644 +--- a/src/afs/LINUX/osi_syscall.c ++++ b/src/afs/LINUX/osi_syscall.c +@@ -91,9 +91,6 @@ osi_syscall_clean(void) + + + /***** 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 7e85aa552..08fccb1b2 100644 +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -407,8 +407,6 @@ afs_linux_write(struct file *fp, const char *buf, size_t count, loff_t * offp) + } + #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 e1796c54f..0fbe4e8f9 100644 +--- a/src/afs/VNOPS/afs_vnop_lookup.c ++++ b/src/afs/VNOPS/afs_vnop_lookup.c +@@ -667,8 +667,6 @@ afs_CheckBulkStatus(struct afs_conn *tc, int nFids, AFSBulkStats *statParm, + 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 fbb5006ce..4c7806d24 100644 +--- a/src/afs/afs_nfsclnt.c ++++ b/src/afs/afs_nfsclnt.c +@@ -160,7 +160,6 @@ afs_nfsclient_init(void) + 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 208bd0338..9b3b1afec 100644 +--- a/src/afs/afs_prototypes.h ++++ b/src/afs/afs_prototypes.h +@@ -331,6 +331,8 @@ extern void init_sys_error_to_et(void); + + /* 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 afs3_syscall(afs_proc_t *p, void *args, long *retval); + 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 @@ extern void afs_PrefetchChunk(struct vcache *avc, struct dcache *adc, + + /* 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); +-- +2.44.0 + |