Compare commits
No commits in common. "factory" and "devel" have entirely different histories.
111
03b280649f5e22ed74c217d7c98c3416a2fa9052
Normal file
111
03b280649f5e22ed74c217d7c98c3416a2fa9052
Normal file
@ -0,0 +1,111 @@
|
||||
commit 03b280649f5e22ed74c217d7c98c3416a2fa9052
|
||||
Author: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed Jun 12 13:56:44 2024 -0600
|
||||
|
||||
Linux-6.10: remove includes for asm/ia32_unistd.h
|
||||
|
||||
The Linux 6.10 commit:
|
||||
"x86/syscall/compat: Remove ia32_unistd.h" (e2d168328e)
|
||||
|
||||
Removed the header ia32_unistd.h since it was just a wrapper for the
|
||||
unistd_32_ia32.h.
|
||||
|
||||
The commit:
|
||||
"linux-afs-translator-xen-20060731" (29dd792381)
|
||||
added an ia32_unistd.h include to several files; all were not needed
|
||||
(as they didn't reference any of the contents from the header file, e.g
|
||||
_NR_ia32_*).
|
||||
|
||||
The commit:
|
||||
"amd64-hook-ia32-table-20030519" (831e172463)
|
||||
added an include for ia32_unistd.h to osi_module.c.
|
||||
|
||||
A later commit:
|
||||
"osi-probe-syscall-20050129" (f126dbdbe2)
|
||||
removed many of the references to defines from ia32_unistd.h, but did
|
||||
not remove the include for the header.
|
||||
|
||||
Currently the only remaining files (linux-kernel-syscall-probe.m4,
|
||||
LINUX/osi_probe.c and LINUX/osi_syscall.c) continue to reference the
|
||||
items from ia32_unistd.h, but only when building older kernels that
|
||||
either don't have LINUX_KEYRING_SUPPORT or when
|
||||
ENABLE_LINUX_SYSCALL_PROBING is enabled (in both cases, these are only
|
||||
applicable for older kernels where the asm/ia32_unistd.h file would be
|
||||
present).
|
||||
|
||||
For the files that don't have references (i.e. _NR_ia32_*), we can
|
||||
simply remove the include for asm/ia32_unistd.h. For the remaining set
|
||||
of files, we can leave the include for asm/ia32_unistd.h since the code
|
||||
already has preprocessor conditionals so it's only included for older
|
||||
Linux kernels where the header file will be present.
|
||||
|
||||
We noted above, the include for asm/ia32_unistd.h is already conditional
|
||||
on the checks for LINUX_KEYRING_SUPPORT and ENABLE_LINUX_SYSCALL_PROBING
|
||||
so we do not need to add any additional configure checks.
|
||||
|
||||
Change-Id: I901b5c0f0ff86272b02f898f3951325533d22f4f
|
||||
Reviewed-on: https://gerrit.openafs.org/15763
|
||||
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_ioctl.c b/src/afs/LINUX/osi_ioctl.c
|
||||
index 3e797745c..d964d8103 100644
|
||||
--- a/src/afs/LINUX/osi_ioctl.c
|
||||
+++ b/src/afs/LINUX/osi_ioctl.c
|
||||
@@ -21,10 +21,6 @@
|
||||
#include <linux/unistd.h> /* For syscall numbers. */
|
||||
#include <linux/mm.h>
|
||||
|
||||
-#ifdef AFS_AMD64_LINUX_ENV
|
||||
-#include <asm/ia32_unistd.h>
|
||||
-#endif
|
||||
-
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
diff --git a/src/afs/LINUX/osi_module.c b/src/afs/LINUX/osi_module.c
|
||||
index 8ace127f4..499810cc6 100644
|
||||
--- a/src/afs/LINUX/osi_module.c
|
||||
+++ b/src/afs/LINUX/osi_module.c
|
||||
@@ -21,10 +21,6 @@
|
||||
#include <linux/unistd.h> /* For syscall numbers. */
|
||||
#include <linux/mm.h>
|
||||
|
||||
-#ifdef AFS_AMD64_LINUX_ENV
|
||||
-#include <asm/ia32_unistd.h>
|
||||
-#endif
|
||||
-
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
diff --git a/src/afs/LINUX/osi_pag_module.c b/src/afs/LINUX/osi_pag_module.c
|
||||
index ea3d1bd2c..346108489 100644
|
||||
--- a/src/afs/LINUX/osi_pag_module.c
|
||||
+++ b/src/afs/LINUX/osi_pag_module.c
|
||||
@@ -20,10 +20,6 @@
|
||||
#include <linux/unistd.h> /* For syscall numbers. */
|
||||
#include <linux/mm.h>
|
||||
|
||||
-#ifdef AFS_AMD64_LINUX_ENV
|
||||
-#include <asm/ia32_unistd.h>
|
||||
-#endif
|
||||
-
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
diff --git a/src/afs/LINUX/osi_proc.c b/src/afs/LINUX/osi_proc.c
|
||||
index 9c5a080f0..ad7c695b9 100644
|
||||
--- a/src/afs/LINUX/osi_proc.c
|
||||
+++ b/src/afs/LINUX/osi_proc.c
|
||||
@@ -25,10 +25,6 @@
|
||||
#include <linux/unistd.h> /* For syscall numbers. */
|
||||
#include <linux/mm.h>
|
||||
|
||||
-#ifdef AFS_AMD64_LINUX_ENV
|
||||
-# include <asm/ia32_unistd.h>
|
||||
-#endif
|
||||
-
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
96
0f6a3a402f4a66114da9231032bd68cdc4dee7bc
Normal file
96
0f6a3a402f4a66114da9231032bd68cdc4dee7bc
Normal file
@ -0,0 +1,96 @@
|
||||
commit 0f6a3a402f4a66114da9231032bd68cdc4dee7bc
|
||||
Author: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed Jun 12 14:13:59 2024 -0600
|
||||
|
||||
Linux-6.10: Use filemap_alloc_folio when avail
|
||||
|
||||
The Linux 6.10 commit:
|
||||
"mm: remove page_cache_alloc()" (3f2ae4ebd5)
|
||||
removed the page_cache_alloc(), with a note that callers would be using
|
||||
filemap_alloc_folio instead.
|
||||
|
||||
The function filemap_alloc_folio() was introduced in Linux 5.15 commit:
|
||||
"mm/filemap: Add filemap_alloc_folio" (bb3c579e25)
|
||||
|
||||
Add a configure check for filemap_alloc_folio and update the function
|
||||
afs_linux_read_cache() to use a wrapper that calls filemap_alloc_folio()
|
||||
if available otherwise calls page_cache_alloc().
|
||||
|
||||
Minor whitespace/style cleanup
|
||||
|
||||
Note: The function filemap_alloc_folio() was introduced in Linux 5.15,
|
||||
so this change affects builds using the Linux kernel 5.15 and later.
|
||||
|
||||
Change-Id: Ia17aefc38fe9787e54b315c864da726d610b8bb9
|
||||
Reviewed-on: https://gerrit.openafs.org/15764
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||||
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
|
||||
index 511b0838f..18809c89f 100644
|
||||
--- a/src/afs/LINUX/osi_vnodeops.c
|
||||
+++ b/src/afs/LINUX/osi_vnodeops.c
|
||||
@@ -2320,6 +2320,24 @@ mapping_read_page(struct address_space *mapping, struct page *page)
|
||||
#endif
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * small compat wrapper for filemap_alloc_folio/page_cache_alloc
|
||||
+ */
|
||||
+static struct page *
|
||||
+afs_page_cache_alloc(struct address_space *cachemapping)
|
||||
+{
|
||||
+#if defined(HAVE_LINUX_FILEMAP_ALLOC_FOLIO)
|
||||
+ struct folio *folio;
|
||||
+ folio = filemap_alloc_folio(mapping_gfp_mask(cachemapping), 0);
|
||||
+ if (folio == NULL) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ return &folio->page;
|
||||
+#else
|
||||
+ return page_cache_alloc(cachemapping);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/* Populate a page by filling it from the cache file pointed at by cachefp
|
||||
* (which contains indicated chunk)
|
||||
* If task is NULL, the page copy occurs syncronously, and the routine
|
||||
@@ -2358,11 +2376,12 @@ afs_linux_read_cache(struct file *cachefp, struct page *page,
|
||||
pageindex = (offset - AFS_CHUNKTOBASE(chunk)) >> PAGE_SHIFT;
|
||||
|
||||
while (cachepage == NULL) {
|
||||
- cachepage = find_get_page(cachemapping, pageindex);
|
||||
+ cachepage = find_get_page(cachemapping, pageindex);
|
||||
if (!cachepage) {
|
||||
- if (!newpage)
|
||||
- newpage = page_cache_alloc(cachemapping);
|
||||
- if (!newpage) {
|
||||
+ if (newpage == NULL) {
|
||||
+ newpage = afs_page_cache_alloc(cachemapping);
|
||||
+ }
|
||||
+ if (newpage == NULL) {
|
||||
code = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
|
||||
index 93f96f5ad..83ea354b0 100644
|
||||
--- a/src/cf/linux-kernel-func.m4
|
||||
+++ b/src/cf/linux-kernel-func.m4
|
||||
@@ -253,6 +253,16 @@ AC_CHECK_LINUX_FUNC([no_strlcpy],
|
||||
size_t s;
|
||||
s = strlcpy(buff);]])
|
||||
|
||||
+dnl Linux 5.15 introduced filemap_alloc_folio() as a replacement for
|
||||
+dnl page_cache_alloc(). page_cache_alloc() was updated to become just a
|
||||
+dnl wrapper for filemap_alloc_folio().
|
||||
+dnl Linux 6.10 removed page_cache_alloc().
|
||||
+AC_CHECK_LINUX_FUNC([filemap_alloc_folio],
|
||||
+ [#include <linux/kernel.h>
|
||||
+ #include <linux/pagemap.h>],
|
||||
+ [[static struct folio *folio;
|
||||
+ folio = filemap_alloc_folio(0, 0);]])
|
||||
+
|
||||
dnl Consequences - things which get set as a result of the
|
||||
dnl above tests
|
||||
AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
|
66
658942f2791fad5e33ec7542158c16dfc66eed39
Normal file
66
658942f2791fad5e33ec7542158c16dfc66eed39
Normal file
@ -0,0 +1,66 @@
|
||||
commit 658942f2791fad5e33ec7542158c16dfc66eed39
|
||||
Author: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed Jun 12 14:16:43 2024 -0600
|
||||
|
||||
Linux-6.10: define a wrapper for vmalloc
|
||||
|
||||
The Linux 6.10 commit:
|
||||
"mm: vmalloc: enable memory allocation profiling" (88ae5fb755)
|
||||
changed vmalloc from a function to a wrapper macro.
|
||||
|
||||
This change results in build errors:
|
||||
"error: implicit declaration of function ‘vmalloc’; did you mean
|
||||
‘kmalloc’? [-Werror=implicit-function-declaration]"
|
||||
|
||||
when vmalloc is passed as a parameter to the afs_atomlist_create() and
|
||||
afs_lhash_create() functions.
|
||||
|
||||
Add a little wrapper function around vmalloc() to use for the parameter
|
||||
to afs_atomlist_create() and afs_lhash_create().
|
||||
|
||||
Note: A configure test was not needed for this change since the name
|
||||
and functionality of Linux's vmalloc did not change.
|
||||
|
||||
Change-Id: I69c1da9eea5d1de11c1628bbcef427f81f5c01e1
|
||||
Reviewed-on: https://gerrit.openafs.org/15765
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||||
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_alloc.c b/src/afs/LINUX/osi_alloc.c
|
||||
index 86cd0e571..7c4b4a1ca 100644
|
||||
--- a/src/afs/LINUX/osi_alloc.c
|
||||
+++ b/src/afs/LINUX/osi_alloc.c
|
||||
@@ -196,6 +196,15 @@ local_free(void *p, size_t n)
|
||||
vfree(p);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * wrapper for vmalloc(), since vmalloc() may be a macro
|
||||
+ */
|
||||
+static void *
|
||||
+local_vmalloc(size_t size)
|
||||
+{
|
||||
+ return vmalloc(size);
|
||||
+}
|
||||
+
|
||||
/* linux_alloc_init(): Initializes the kernel memory allocator. As part
|
||||
* of this process, it also initializes a pool of osi_linux_mem
|
||||
* structures as well as the hash table itself.
|
||||
@@ -209,14 +218,14 @@ linux_alloc_init(void)
|
||||
/* initiate our pool of osi_linux_mem structs */
|
||||
al_mem_pool =
|
||||
afs_atomlist_create(sizeof(struct osi_linux_mem), sizeof(long) * 1024,
|
||||
- (void *)vmalloc, local_free);
|
||||
+ local_vmalloc, local_free);
|
||||
if (!al_mem_pool) {
|
||||
printf("afs_osi_Alloc: Error in initialization(atomlist_create)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* initialize the hash table to hold references to alloc'ed chunks */
|
||||
- lh_mem_htab = afs_lhash_create(hash_equal, (void *)vmalloc, local_free);
|
||||
+ lh_mem_htab = afs_lhash_create(hash_equal, local_vmalloc, local_free);
|
||||
if (!lh_mem_htab) {
|
||||
printf("afs_osi_Alloc: Error in initialization(lhash_create)\n");
|
||||
return 0;
|
51
7097eec17bc01bcfc12c4d299136b2d3b94ec3d7
Normal file
51
7097eec17bc01bcfc12c4d299136b2d3b94ec3d7
Normal file
@ -0,0 +1,51 @@
|
||||
commit 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7
|
||||
Author: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Thu Jun 6 10:42:57 2024 -0600
|
||||
|
||||
Linux 6.10: Move 'inline' before func return type
|
||||
|
||||
With Linux 6.10 commit:
|
||||
"kbuild: turn on -Wextra by default" (f5982cceb3)
|
||||
there are additional compiler warnings that can turn
|
||||
into build errors when --enable-checking is used.
|
||||
|
||||
"error: ‘inline’ is not at beginning of declaration
|
||||
[-Werror=old-style-declaration]"
|
||||
|
||||
The error is due to the return type preceding the "inline" keyword
|
||||
in function declarations.
|
||||
|
||||
Fix the declarations for file_can_read_pages() and
|
||||
afs_linux_readpage_fastpath() to have the proper ordering of the
|
||||
static/inline keywords attributes so they precede the return type.
|
||||
|
||||
Just a note that the `static` and `inline` keywords must precede a
|
||||
function's return type.
|
||||
|
||||
Change-Id: I3ff9d45c119e70a90faf18fbf6d49fb6b9adcf33
|
||||
Reviewed-on: https://gerrit.openafs.org/15768
|
||||
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||||
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
|
||||
index 18809c89f..c6c3bfe39 100644
|
||||
--- a/src/afs/LINUX/osi_vnodeops.c
|
||||
+++ b/src/afs/LINUX/osi_vnodeops.c
|
||||
@@ -2443,7 +2443,7 @@ afs_linux_read_cache(struct file *cachefp, struct page *page,
|
||||
/*
|
||||
* Return true if the file has a mapping that can read pages
|
||||
*/
|
||||
-static int inline
|
||||
+static inline int
|
||||
file_can_read_pages(struct file *fp)
|
||||
{
|
||||
#if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO)
|
||||
@@ -2456,7 +2456,7 @@ file_can_read_pages(struct file *fp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int inline
|
||||
+static inline int
|
||||
afs_linux_readpage_fastpath(struct file *fp, struct page *pp, int *codep)
|
||||
{
|
||||
loff_t offset = page_offset(pp);
|
76
d8b56f21994ce66d8daebb7d69e792f34c1a19ed
Normal file
76
d8b56f21994ce66d8daebb7d69e792f34c1a19ed
Normal file
@ -0,0 +1,76 @@
|
||||
commit d8b56f21994ce66d8daebb7d69e792f34c1a19ed
|
||||
Author: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed Jun 12 14:24:01 2024 -0600
|
||||
|
||||
afs: avoid empty-body warning
|
||||
|
||||
With Linux 6.10 commit:
|
||||
"kbuild: turn on -Wextra by default" (f5982cceb3)
|
||||
there are additional compiler warnings that can turn
|
||||
into build errors when --enable-checking is used.
|
||||
|
||||
"error: suggest braces around empty body in an ‘if’
|
||||
statement [-Werror=empty-body]"
|
||||
|
||||
when there is an empty body, e.g.
|
||||
if (foo)
|
||||
;
|
||||
|
||||
Most cases are due to the macros afs_PutCell and afs_PutServer which are
|
||||
"empty" macros.
|
||||
|
||||
Update the afs_PutCell and afs_PutServer macros so they expand to
|
||||
do {} while(0)
|
||||
|
||||
Add a comment at the definitions for afs_PutCell and afs_PutServer to
|
||||
document the reason for keeping them.
|
||||
|
||||
Add braces to conditionals that have an empty body.
|
||||
|
||||
There are no functional changes with this commit.
|
||||
|
||||
Change-Id: I359723eb6a19d1c78449902b4f477da131b0fa18
|
||||
Reviewed-on: https://gerrit.openafs.org/15766
|
||||
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||||
|
||||
diff --git a/src/afs/afs.h b/src/afs/afs.h
|
||||
index 4bde047e8..621a8a517 100644
|
||||
--- a/src/afs/afs.h
|
||||
+++ b/src/afs/afs.h
|
||||
@@ -349,7 +349,8 @@ struct cell_alias {
|
||||
char *cell;
|
||||
};
|
||||
|
||||
-#define afs_PutCell(cellp, locktype)
|
||||
+/* In case someday a counterpart for afs_GetCell is needed */
|
||||
+#define afs_PutCell(cellp, locktype) do {} while(0)
|
||||
|
||||
/* the unixuser flag bit definitions */
|
||||
#define UHasTokens 1 /* are the st and ct fields valid (ever set)? */
|
||||
@@ -537,7 +538,8 @@ struct server {
|
||||
afs_int32 capabilities;
|
||||
};
|
||||
|
||||
-#define afs_PutServer(servp, locktype)
|
||||
+/* In case someday a counterpart for afs_GetServer is needed */
|
||||
+#define afs_PutServer(servp, locktype) do {} while(0)
|
||||
|
||||
/* structs for some pioctls - these are (or should be)
|
||||
* also in venus.h
|
||||
diff --git a/src/afs/afs_cbqueue.c b/src/afs/afs_cbqueue.c
|
||||
index 2dd633588..11e3aa3f1 100644
|
||||
--- a/src/afs/afs_cbqueue.c
|
||||
+++ b/src/afs/afs_cbqueue.c
|
||||
@@ -139,7 +139,9 @@ afs_DequeueCallback(struct vcache *avc)
|
||||
debugvc = avc;
|
||||
if (avc->callsort.prev) {
|
||||
QRemove(&(avc->callsort));
|
||||
- } else; /* must have got dequeued in a race */
|
||||
+ } else {
|
||||
+ /* must have got dequeued in a race */
|
||||
+ }
|
||||
|
||||
return;
|
||||
} /* afs_DequeueCallback */
|
11
handle_backports.diff
Normal file
11
handle_backports.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/src/afs/LINUX/osi_vnodeops.c
|
||||
+++ b/src/afs/LINUX/osi_vnodeops.c
|
||||
@@ -971,7 +971,7 @@
|
||||
# else
|
||||
.splice_write = generic_file_splice_write,
|
||||
# endif
|
||||
-# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0)
|
||||
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
|
||||
.splice_read = filemap_splice_read,
|
||||
# else
|
||||
.splice_read = generic_file_splice_read,
|
Loading…
Reference in New Issue
Block a user