mirror_zfs/module/os/linux/spl
khoang98 3a8e23d0f8 Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread
Avoid calling dbuf_evict_one() from memory reclaim contexts (e.g. Linux
kswapd, FreeBSD pagedaemon). This prevents deadlock caused by reclaim
threads waiting for the dbuf hash lock in the call sequence:
dbuf_evict_one -> dbuf_destroy -> arc_buf_destroy

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Kaitlin Hoang <kthoang@amazon.com>
Closes #17561
2025-10-16 17:03:47 -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-11-15 10:15:00 -08:00
spl-cred.c config: remove HAVE_GROUP_INFO_GID 2024-11-15 10:14:59 -08: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-11-15 10:14:59 -08:00
spl-kmem-cache.c config: remove HAVE_KMEM_CACHE_CREATE_USERCOPY 2024-11-15 10:14:59 -08:00
spl-kmem.c config: remove HAVE_KVMALLOC 2024-11-15 10:15:00 -08:00
spl-kstat.c Linux 6.8 compat: implement strlcpy fallback 2024-01-29 14:53:29 -08:00
spl-proc.c config: remove HAVE_WAIT_QUEUE_* 2024-11-15 10:15:00 -08:00
spl-procfs-list.c Linux 6.1 compat: change order of sys/mutex.h includes 2022-10-18 12:29:44 -07:00
spl-shrinker.c config: remove HAVE_SPLIT_SHRINKER_CALLBACK and HAVE_SINGLE_SHRINKER_CALLBACK 2024-11-15 10:14:58 -08:00
spl-taskq.c Linux 6.2/6.15: del_timer_sync() renamed to timer_delete_sync() 2025-05-27 14:41:45 -07:00
spl-thread.c Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread 2025-10-16 17:03:47 -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-11-15 10:14:58 -08:00
spl-xdr.c xdr: header cleanup 2024-04-29 13:50:05 -07:00
spl-zlib.c config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP 2024-11-15 10:14:58 -08:00
spl-zone.c config: remove HAVE_USER_NS_COMMON_INUM 2024-11-15 10:14:58 -08: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