mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-28 17:39:23 +03:00
FreeBSD: Fix the build on FreeBSD 12
It was broken for several reasons: * VOP_UNLOCK lost an argument in 13.0. So OpenZFS should be using VOP_UNLOCK1, but a few direct calls to VOP_UNLOCK snuck in. * The location of the zlib header moved in 13.0 and 12.1. We can drop support for building on 12.0, which is EoL. * knlist_init lost an argument in 13.0. OpenZFS change9d0887402bassumed 13.0 or later. * FreeBSD 13.0 added copy_file_range, and OpenZFS change67a1b03791assumed 13.0 or later. Sponsored-by: Axcient Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Alan Somers <asomers@gmail.com> Closes #15551
This commit is contained in:
@@ -46,6 +46,7 @@ knlist_sx_xunlock(void *arg)
|
||||
sx_xunlock((struct sx *)arg);
|
||||
}
|
||||
|
||||
#if __FreeBSD_version >= 1300128
|
||||
static void
|
||||
knlist_sx_assert_lock(void *arg, int what)
|
||||
{
|
||||
@@ -55,11 +56,28 @@ knlist_sx_assert_lock(void *arg, int what)
|
||||
else
|
||||
sx_assert((struct sx *)arg, SX_UNLOCKED);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
knlist_sx_assert_locked(void *arg)
|
||||
{
|
||||
sx_assert((struct sx *)arg, SX_LOCKED);
|
||||
}
|
||||
static void
|
||||
knlist_sx_assert_unlocked(void *arg)
|
||||
{
|
||||
sx_assert((struct sx *)arg, SX_UNLOCKED);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
knlist_init_sx(struct knlist *knl, struct sx *lock)
|
||||
{
|
||||
|
||||
#if __FreeBSD_version >= 1300128
|
||||
knlist_init(knl, lock, knlist_sx_xlock, knlist_sx_xunlock,
|
||||
knlist_sx_assert_lock);
|
||||
#else
|
||||
knlist_init(knl, lock, knlist_sx_xlock, knlist_sx_xunlock,
|
||||
knlist_sx_assert_locked, knlist_sx_assert_unlocked);
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user