mirror_zfs/module/os/linux/spl
khoang98 c405a7a35c 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-08-07 12:15:14 -04:00
..
README.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
spl-atomic.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-condvar.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-cred.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-err.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-generic.c tunables: use Linux ullong param ops for u64 2025-06-17 10:50:26 -07:00
spl-kmem-cache.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-kmem.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-kstat.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-proc.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-procfs-list.c SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
spl-shrinker.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-taskq.c tunables: remove direct use of module_param_cb 2025-06-17 10:50:26 -07:00
spl-thread.c Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread 2025-08-07 12:15:14 -04:00
spl-trace.c SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
spl-tsd.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-vmem.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-xdr.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-zlib.c SPDX: license tags: GPL-2.0-or-later 2025-04-16 09:59:44 -07:00
spl-zone.c SPDX: license tags: BSD-2-Clause 2025-04-16 09:59:44 -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