mirror_zfs/module/os/linux/spl
Rob Norris 21cba06bef
config: fix dequeue_signal check for kernels <4.20
Before 4.20, kernel_siginfo_t was just called siginfo_t. This was
causing the kthread_dequeue_signal_3arg_task check, which uses
kernel_siginfo_t, to fail on older kernels.

In d6b8c17f1, we started checking for the "new" three-arg
dequeue_signal() by testing for the "old" version. Because that test is
explicitly using kernel_siginfo_t, it would fail, leading to the build
trying to use the new three-arg version, which would then not compile.

This commit fixes that by avoiding checking for the old 3-arg
dequeue_signal entirely. Instead, we check for the new one, as well as
the 4-arg form, and we use the old form as a fallback. This way, we
never have to test for it explicitly, and once we're building
HAVE_SIGINFO will make sure we get the right kernel_siginfo_t for it, so
everything works out nice.

Original-patch-by: Finix <yancw@info2soft.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #16666
2024-10-20 19:50:13 -07:00
..
README.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
spl-atomic.c Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
spl-condvar.c config: remove HAVE_SCHED_SIGNAL_HEADER 2024-09-18 11:23:50 -07:00
spl-cred.c config: remove HAVE_GROUP_INFO_GID 2024-09-18 11:23:50 -07:00
spl-err.c Fix declarations of non-global variables 2022-10-18 11:05:32 -07:00
spl-generic.c config: remove HAVE_KERNEL_(READ|WRITE)_PPOS 2024-09-18 11:23:50 -07:00
spl-kmem-cache.c config: remove HAVE_KMEM_CACHE_CREATE_USERCOPY 2024-09-18 11:23:50 -07:00
spl-kmem.c config: remove HAVE_KVMALLOC 2024-09-18 11:23:50 -07:00
spl-kstat.c Linux 6.8 compat: implement strlcpy fallback 2024-01-29 11:36:07 -08:00
spl-proc.c linux: remove kernel version checks for unsupported kernels 2024-09-19 15:43:44 -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 config: remove HAVE_SPLIT_SHRINKER_CALLBACK and HAVE_SINGLE_SHRINKER_CALLBACK 2024-09-18 11:23:50 -07:00
spl-taskq.c config: remove HAVE_KERNEL_TIMER_SETUP 2024-09-18 11:23:50 -07:00
spl-thread.c config: fix dequeue_signal check for kernels <4.20 2024-10-20 19:50:13 -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 config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP 2024-09-18 11:23:49 -07:00
spl-xdr.c xdr: header cleanup 2024-04-03 15:13:27 -07:00
spl-zlib.c config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP 2024-09-18 11:23:49 -07:00
spl-zone.c config: remove HAVE_USER_NS_COMMON_INUM 2024-09-18 11:23:50 -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

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