FreeBSD: stop passing LK_INTERLOCK to VOP_LOCK

There is an ongoing effort to eliminate this feature.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Closes #13908
This commit is contained in:
Mateusz Guzik 2022-09-20 02:17:27 +02:00 committed by GitHub
parent 48cf170d5a
commit 9a671fe7ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -977,12 +977,13 @@ zfsctl_snapdir_lookup(struct vop_lookup_args *ap)
*/
VI_LOCK(*vpp);
if (((*vpp)->v_iflag & VI_MOUNT) == 0) {
VI_UNLOCK(*vpp);
/*
* Upgrade to exclusive lock in order to:
* - avoid race conditions
* - satisfy the contract of mount_snapshot()
*/
err = VOP_LOCK(*vpp, LK_TRYUPGRADE | LK_INTERLOCK);
err = VOP_LOCK(*vpp, LK_TRYUPGRADE);
if (err == 0)
break;
} else {