mirror_zfs/module/os/linux/spl
Matthew Macy ac6e5fb202
Replace cv_{timed}wait_sig with cv_{timed}wait_idle where appropriate
There are a number of places where cv_?_sig is used simply for
accounting purposes but the surrounding code has no ability to
cope with actually receiving a signal. On FreeBSD it is possible
to send signals to individual kernel threads so this could
enable undesirable behavior.

This patch adds routines on Linux that will do the same idle
accounting as _sig without making the task interruptible. On
FreeBSD cv_*_idle  are all aliases for cv_*

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #10843
2020-09-03 20:04:09 -07:00
..
Makefile.in Add zfs_file_* interface, remove vnodes 2019-11-21 09:32:57 -08:00
README.md Change http://zfsonlinux.org links to https://zfsonlinux.org 2020-01-13 16:43:59 -08:00
spl-atomic.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-condvar.c Replace cv_{timed}wait_sig with cv_{timed}wait_idle where appropriate 2020-09-03 20:04:09 -07:00
spl-cred.c Linux compat: Minimum kernel version 3.10 2019-11-12 08:59:06 -08:00
spl-err.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-generic.c Switch off -Wmissing-prototypes for libgcc math functions 2020-06-18 12:21:46 -07:00
spl-kmem-cache.c Remove KMC_KMEM and KMC_VMEM 2020-08-17 16:04:28 -07:00
spl-kmem.c Move GFP flags kernel compatibility code 2020-06-08 16:33:46 -07:00
spl-kstat.c Links in Source Files 2020-09-02 09:42:12 -07:00
spl-proc.c Remove KMC_KMEM and KMC_VMEM 2020-08-17 16:04:28 -07:00
spl-procfs-list.c Linux 5.6 compat: struct proc_ops 2020-02-07 11:03:53 -08:00
spl-taskq.c Improve performance of zio_taskq_member 2020-03-03 10:29:38 -08:00
spl-thread.c Linux 4.14, 4.19, 5.0+ compat: SIMD save/restore 2019-10-24 10:17:33 -07:00
spl-trace.c Add tracepoints for taskq entry lifetime events 2019-11-01 13:14:54 -07:00
spl-tsd.c cppcheck: (error) Uninitialized variable 2019-12-18 17:24:29 -08:00
spl-vmem.c Fix early include of <linux/percpu_compat.h> 2020-07-15 15:58:15 -07:00
spl-xdr.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-zlib.c Fix early include of <linux/percpu_compat.h> 2020-07-15 15:58:15 -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 ZFS on Linux 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