zfs/module/os/linux/spl
Rob Norris e951dba48a Linux 6.10: work harder to avoid kmem_cache_alloc reuse
Linux 6.10 change kmem_cache_alloc to be a macro, rather than a
function, such that the old #undef for it in spl-kmem-cache.c would
remove its definition completely, breaking the build.

This inverts the model used before. Rather than always defining the
kmem_cache_* macro, then undefining then inside spl-kmem-cache.c,
instead we make a special tag to indicate we're currently inside
spl-kmem-cache.c, and not defining those in macros in the first place,
so we can use the kernel-supplied kmem_cache_* functions to implement
spl_kmem_cache_*, as we expect.

For all other callers, we create the macros as normal and remove access
to the kernel's own conflicting names.

Signed-off-by: Rob Norris <robn@despairlabs.com>
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
2024-07-15 17:10:02 -07:00
..
README.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
THIRDPARTYLICENSE.gplv2 OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
THIRDPARTYLICENSE.gplv2.descrip OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-atomic.c Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
spl-condvar.c linux spl: fix typo in top comment of spl-condvar.c 2024-01-17 09:05:12 -08:00
spl-cred.c Linux 6.3 compat: idmapped mount API changes 2023-04-10 14:15:36 -07:00
spl-err.c Fix declarations of non-global variables 2022-10-18 11:05:32 -07:00
spl-generic.c Linux: Fix octal detection in define_ddi_strtox() 2023-03-08 13:52:09 -08:00
spl-kmem-cache.c Linux 6.10: work harder to avoid kmem_cache_alloc reuse 2024-07-15 17:10:02 -07:00
spl-kmem.c Clean up CSTYLEDs 2022-01-26 11:38:52 -08:00
spl-kstat.c Linux 6.8 compat: implement strlcpy fallback 2024-01-29 11:36:07 -08:00
spl-proc.c Linux 6.5 compat: spl: properly unregister sysctl entries 2023-09-07 14:36:32 -07:00
spl-procfs-list.c Linux: disable lockdep for a couple of locks 2024-05-13 15:12:07 -07:00
spl-shrinker.c Linux 6.7 compat: rework shrinker setup for heap allocations 2023-12-20 11:47:55 -08:00
spl-taskq.c Replace usage of schedule_timeout with schedule_timeout_interruptible (#16150) 2024-05-09 07:30:28 -07:00
spl-thread.c Simplify issig(). 2024-05-29 10:49:11 -07:00
spl-trace.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spl-tsd.c Linux SPL module init: Handle memory allocation failures correctly 2022-09-08 10:28:20 -07:00
spl-vmem.c Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
spl-xdr.c xdr: header cleanup 2024-04-03 15:13:27 -07:00
spl-zlib.c Linux SPL module init: Handle memory allocation failures correctly 2022-09-08 10:28:20 -07:00
spl-zone.c Linux 6.8 compat: implement strlcpy fallback 2024-01-29 11:36:07 -08:00

README.md

The Solaris Porting Layer, SPL, is a Linux kernel module which provides a compatibility layer used by the OpenZFS project.

Installation

The latest version of the SPL is maintained as part of this repository. Only when building ZFS version 0.7.x or earlier must an external SPL release be used. These releases can be found at:

Release

The SPL is released under a GPLv2 license.
For more details see the NOTICE and THIRDPARTYLICENSE files; UCRL-CODE-235197