diff options
Diffstat (limited to 'emulators/open-vm-kmod/files/patch-vmblock_vnops.c')
-rw-r--r-- | emulators/open-vm-kmod/files/patch-vmblock_vnops.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/emulators/open-vm-kmod/files/patch-vmblock_vnops.c b/emulators/open-vm-kmod/files/patch-vmblock_vnops.c new file mode 100644 index 000000000000..64ebd25e1ce0 --- /dev/null +++ b/emulators/open-vm-kmod/files/patch-vmblock_vnops.c @@ -0,0 +1,41 @@ +--- vmblock/vnops.c.orig 2025-10-01 18:40:23 UTC ++++ vmblock/vnops.c +@@ -479,9 +479,9 @@ struct vop_generic_args { + * Check for and don't map any that aren't. (We must always map first + * vp or vclean fails.) + */ +- if (i && (*this_vp_p == NULLVP || ++ if (i && (*this_vp_p == NULL || + (*this_vp_p)->v_op != &VMBlockVnodeOps)) { +- old_vps[i] = NULLVP; ++ old_vps[i] = NULL; + } else { + old_vps[i] = *this_vp_p; + *(vps_p[i]) = VMBVPTOLOWERVP(*this_vp_p); +@@ -491,7 +491,7 @@ struct vop_generic_args { + * future.) + */ + if (reles & VDESC_VP0_WILLRELE) { +- VREF(*this_vp_p); ++ vref(*this_vp_p); + } + } + } +@@ -501,7 +501,7 @@ struct vop_generic_args { + * structure. + */ + if (vps_p[0] && *vps_p[0]) { +- error = VCALL(ap); ++ error = ap->a_desc->vdesc_call(ap); + } else { + printf("VMBlockVopBypass: no map for %s\n", descp->vdesc_name); + error = EINVAL; +@@ -681,7 +681,7 @@ struct vop_lookup_args { + */ + if (ldvp == lvp) { + *ap->a_vpp = dvp; +- VREF(dvp); ++ vref(dvp); + vrele(lvp); + } else { + error = VMBlockNodeGet(dvp->v_mount, lvp, &vp, pathname); |