diff --git a/emulators/open-vm-tools/Makefile b/emulators/open-vm-tools/Makefile index b82fb91fa88f..a4de752a213a 100644 --- a/emulators/open-vm-tools/Makefile +++ b/emulators/open-vm-tools/Makefile @@ -4,7 +4,7 @@ PORTNAME= open-vm-tools PORTVERSION= ${RELEASE_VER} DISTVERSIONPREFIX= stable- -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 2 CATEGORIES= emulators diff --git a/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c b/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c index 1e743a668858..02e6d24a5fdf 100644 --- a/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c +++ b/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c @@ -1,6 +1,33 @@ --- modules/freebsd/vmblock/vnops.c.orig 2019-10-21 21:58:04 UTC +++ modules/freebsd/vmblock/vnops.c -@@ -1262,12 +1262,15 @@ struct vop_unlock_args { +@@ -532,17 +532,12 @@ struct vop_generic_args { + * Map the possible out-going vpp (Assumes that the lower layer always + * returns a VREF'ed vpp unless it gets an error.) + */ +- if (descp->vdesc_vpp_offset != VDESC_NO_OFFSET && +- !(descp->vdesc_flags & VDESC_NOMAP_VPP) && +- !error) { ++ if (descp->vdesc_vpp_offset != VDESC_NO_OFFSET && !error) { + /* + * XXX - even though some ops have vpp returned vp's, several ops + * actually vrele this before returning. We must avoid these ops. + * (This should go away when these ops are regularized.) + */ +- if (descp->vdesc_flags & VDESC_VPP_WILLRELE) { +- goto out; +- } + vppp = VOPARG_OFFSETTO(struct vnode***, descp->vdesc_vpp_offset,ap); + if (*vppp) { + /* FIXME: set proper name for the vnode */ +@@ -550,7 +545,6 @@ struct vop_generic_args { + } + } + +-out: + return error; + } + +@@ -1262,12 +1256,15 @@ struct vop_unlock_args { */ { struct vnode *vp = ap->a_vp; @@ -16,7 +43,7 @@ /* * If caller already holds interlock, drop it. (Per VOP_UNLOCK() API.) * Also strip LK_INTERLOCK from flags passed to lower layer. -@@ -1276,6 +1279,7 @@ struct vop_unlock_args { +@@ -1276,6 +1273,7 @@ struct vop_unlock_args { VI_UNLOCK(vp); ap->a_flags = flags &= ~LK_INTERLOCK; }