zfs/module/spl
Brian Behlendorf bff2361aeb
Linux 5.2 compat: rw_tryupgrade()
Commit torvalds/linux@46ad0840b has removed the architecture specific
rwsem source and headers leaving only the generic version.  As part
of this change the RWSEM_ACTIVE_READ_BIAS and RWSEM_ACTIVE_WRITE_BIAS
macros were moved to the private kernel/locking/rwsem.h header.
This results in a build failure because these macros were required
to implement the rw_tryupgrade() compatibility function.

In practice, this isn't a major problem because there are only a
few consumers of rw_tryupgrade() and because consumers of rw_tryupgrade
should be written to retry using rw_enter(RW_WRITER).

After auditing all of the callers only dmu_zfetch() was determined
not to perform a retry.  It has been updated in this commit to
resolve this issue.

That said, the rw_tryupgrade() functionality should be considered
for possible removal in a future release due to the difficultly
in supporting the interface.

Reviewed-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #8730
2019-05-23 13:46:33 -07:00
..
Makefile.in Fixes for procfs files backed by linked lists 2018-09-26 11:08:12 -07:00
README.md Update build system and packaging 2018-05-29 16:00:33 -07:00
THIRDPARTYLICENSE.gplv2 Prepare SPL repo to merge with ZFS repo 2018-05-29 14:51:39 -07:00
THIRDPARTYLICENSE.gplv2.descrip Prepare SPL repo to merge with ZFS repo 2018-05-29 14:51:39 -07:00
spl-atomic.c Fix cstyle warnings 2018-02-07 11:49:38 -08:00
spl-condvar.c Update build system and packaging 2018-05-29 16:00:33 -07:00
spl-cred.c Fix cstyle warnings 2018-02-07 11:49:38 -08:00
spl-err.c Correct snprintf() size argument 2019-04-30 19:41:12 -07:00
spl-generic.c Add missing trailing '\n' in printk() messages 2019-05-08 16:43:55 -07:00
spl-kmem-cache.c Fix style of spl_kmem_cache_create() 2019-02-28 17:57:47 -08:00
spl-kmem.c Update build system and packaging 2018-05-29 16:00:33 -07:00
spl-kobj.c Fix cstyle warnings 2018-02-07 11:49:38 -08:00
spl-kstat.c Unbreak build on Linux kernel < 3.10 2019-04-08 14:59:24 -07:00
spl-mutex.c Fix cstyle warnings 2018-02-07 11:49:38 -08:00
spl-proc.c Create /proc/sys/kernel/spl/gitrev with git hash 2018-10-08 21:57:02 -07:00
spl-procfs-list.c Restrict kstats and print real pointers 2019-04-04 18:57:06 -07:00
spl-rwlock.c Linux 5.2 compat: rw_tryupgrade() 2019-05-23 13:46:33 -07:00
spl-taskq.c Update build system and packaging 2018-05-29 16:00:33 -07:00
spl-thread.c Fix more cstyle warnings 2018-02-24 10:05:37 -08:00
spl-tsd.c Remove all spin_is_locked calls 2017-10-30 11:16:56 -07:00
spl-vmem.c Prepare SPL repo to merge with ZFS repo 2018-05-29 14:51:39 -07:00
spl-vnode.c Use SEEK_{SET,CUR,END} for file seek "whence" 2019-04-25 10:17:27 -07:00
spl-xdr.c Update build system and packaging 2018-05-29 16:00:33 -07:00
spl-zlib.c Prepare SPL repo to merge with ZFS repo 2018-05-29 14:51:39 -07:00

README.md

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