Martin Natano wrote:
> The VOP_UNLOCK() function has a flags parameter, which is documented to
> should be zero in most cases. It turns out that the flags argument is
> zero for all ~200 callers in the tree. On a closer look it is revealed
> that VOP_UNLOCK() uses lockmgr() for all filesystems that support
> locking. The only lockmgr() flag that is useful for unlocking is
> LK_RELEASE, which is set by the implementation anyways, so passing flags
> to VOP_UNLOCK() doesn't make sense anyway.
>
> Ok to remove the flags argument from VOP_UNLOCK()?
Makes sense to me. NetBSD does not have the flags argument for VOP_UNLOCK
either.
> natano
>
>
> Index: share/man/man9/VOP_LOOKUP.9
> ===================================================================
> RCS file: /cvs/src/share/man/man9/VOP_LOOKUP.9,v
> retrieving revision 1.32
> diff -u -p -r1.32 VOP_LOOKUP.9
> --- share/man/man9/VOP_LOOKUP.9 2 Dec 2015 11:03:40 -0000 1.32
> +++ share/man/man9/VOP_LOOKUP.9 2 Mar 2016 20:02:46 -0000
> @@ -283,7 +283,6 @@
> .Ft int
> .Fo VOP_UNLOCK
> .Fa "struct vnode *vp"
> -.Fa "int flags"
> .Fa "struct proc *p"
> .Fc
> .Ft int
> @@ -564,7 +563,7 @@ returned.
> .Pp
> .It Fn VOP_ISLOCKED vp
> .It Fn VOP_LOCK vp flags p
> -.It Fn VOP_UNLOCK vp flags p
> +.It Fn VOP_UNLOCK vp p
> .Fn VOP_LOCK
> is used internally by
> .Xr vn_lock 9
> @@ -572,8 +571,6 @@ to lock a vnode.
> It should not be used by other file system code.
> .Fn VOP_UNLOCK
> unlocks a vnode.
> -.Fa flags
> -should be zero in most cases.
> .Fn VOP_ISLOCKED
> returns 1 if
> .Fa vp
> Index: share/man/man9/vinvalbuf.9
> ===================================================================
> RCS file: /cvs/src/share/man/man9/vinvalbuf.9,v
> retrieving revision 1.9
> diff -u -p -r1.9 vinvalbuf.9
> --- share/man/man9/vinvalbuf.9 17 Jul 2013 20:21:56 -0000 1.9
> +++ share/man/man9/vinvalbuf.9 2 Mar 2016 20:02:46 -0000
> @@ -87,7 +87,7 @@ A value of 0 is returned on success.
> .Bd -literal -offset indent
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, cred, p, 0, 0);
> -VOP_UNLOCK(devvp, 0, p);
> +VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
> .Ed
> Index: sys/arch/sparc64/dev/vdsp.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/sparc64/dev/vdsp.c,v
> retrieving revision 1.41
> diff -u -p -r1.41 vdsp.c
> --- sys/arch/sparc64/dev/vdsp.c 29 Dec 2015 04:46:28 -0000 1.41
> +++ sys/arch/sparc64/dev/vdsp.c 2 Mar 2016 20:02:49 -0000
> @@ -941,7 +941,7 @@ vdsp_open(void *arg1)
> sc->sc_vdisk_size = va.va_size / DEV_BSIZE;
> }
>
> - VOP_UNLOCK(nd.ni_vp, 0, p);
> + VOP_UNLOCK(nd.ni_vp, p);
> sc->sc_vp = nd.ni_vp;
>
> vdsp_readlabel(sc);
> @@ -1013,7 +1013,7 @@ vdsp_readlabel(struct vdsp_softc *sc)
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> err = VOP_READ(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
> if (err) {
> free(sc->sc_label, M_DEVBUF, 0);
> sc->sc_label = NULL;
> @@ -1043,7 +1043,7 @@ vdsp_writelabel(struct vdsp_softc *sc)
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> err = VOP_WRITE(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
>
> return (err);
> }
> @@ -1074,7 +1074,7 @@ vdsp_is_iso(struct vdsp_softc *sc)
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> err = VOP_READ(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
>
> if (err == 0 && memcmp(vdp->id, ISO_STANDARD_ID, sizeof(vdp->id)))
> err = ENOENT;
> @@ -1153,7 +1153,7 @@ vdsp_read_desc(struct vdsp_softc *sc, st
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> dm->status = VOP_READ(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
>
> KERNEL_UNLOCK();
> if (dm->status == 0) {
> @@ -1227,7 +1227,7 @@ vdsp_read_dring(void *arg1, void *arg2)
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> vd->status = VOP_READ(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
>
> KERNEL_UNLOCK();
> if (vd->status == 0) {
> @@ -1326,7 +1326,7 @@ vdsp_write_dring(void *arg1, void *arg2)
>
> vn_lock(sc->sc_vp, LK_EXCLUSIVE | LK_RETRY, p);
> vd->status = VOP_WRITE(sc->sc_vp, &uio, 0, p->p_ucred);
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
>
> fail:
> free(buf, M_DEVBUF, 0);
> Index: sys/dev/diskmap.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/diskmap.c,v
> retrieving revision 1.13
> diff -u -p -r1.13 diskmap.c
> --- sys/dev/diskmap.c 20 Nov 2015 16:06:53 -0000 1.13
> +++ sys/dev/diskmap.c 2 Mar 2016 20:02:49 -0000
> @@ -116,7 +116,7 @@ diskmapioctl(dev_t dev, u_long cmd, cadd
> fp->f_rbytes = 0;
> fp->f_wbytes = 0;
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> FRELE(fp, p);
> fdpunlock(fdp);
> Index: sys/dev/vnd.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/vnd.c,v
> retrieving revision 1.157
> diff -u -p -r1.157 vnd.c
> --- sys/dev/vnd.c 26 Aug 2015 22:36:18 -0000 1.157
> +++ sys/dev/vnd.c 2 Mar 2016 20:02:49 -0000
> @@ -459,14 +459,14 @@ vndioctl(dev_t dev, u_long cmd, caddr_t
> else {
> error = VOP_GETATTR(nd.ni_vp, &vattr, p->p_ucred, p);
> if (error) {
> - VOP_UNLOCK(nd.ni_vp, 0, p);
> + VOP_UNLOCK(nd.ni_vp, p);
> vn_close(nd.ni_vp, VNDRW(sc), p->p_ucred, p);
> disk_unlock(&sc->sc_dk);
> return (error);
> }
> sc->sc_size = vattr.va_size / sc->sc_secsize;
> }
> - VOP_UNLOCK(nd.ni_vp, 0, p);
> + VOP_UNLOCK(nd.ni_vp, p);
> sc->sc_vp = nd.ni_vp;
> if ((error = vndsetcred(sc, p->p_ucred)) != 0) {
> (void) vn_close(nd.ni_vp, VNDRW(sc), p->p_ucred, p);
> Index: sys/dev/usb/uvideo.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
> retrieving revision 1.183
> diff -u -p -r1.183 uvideo.c
> --- sys/dev/usb/uvideo.c 20 Dec 2015 10:08:05 -0000 1.183
> +++ sys/dev/usb/uvideo.c 2 Mar 2016 20:02:50 -0000
> @@ -2775,7 +2775,7 @@ uvideo_debug_file_open(struct uvideo_sof
> }
>
> sc->sc_vp = nd.ni_vp;
> - VOP_UNLOCK(sc->sc_vp, 0, p);
> + VOP_UNLOCK(sc->sc_vp, p);
> if (nd.ni_vp->v_type != VREG) {
> vn_close(nd.ni_vp, FWRITE, p->p_ucred, p);
> return (EIO);
> Index: sys/isofs/cd9660/cd9660_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/cd9660/cd9660_lookup.c,v
> retrieving revision 1.23
> diff -u -p -r1.23 cd9660_lookup.c
> --- sys/isofs/cd9660/cd9660_lookup.c 14 Mar 2015 03:38:50 -0000 1.23
> +++ sys/isofs/cd9660/cd9660_lookup.c 2 Mar 2016 20:02:50 -0000
> @@ -377,7 +377,7 @@ found:
> */
> if (flags & ISDOTDOT) {
> brelse(bp);
> - VOP_UNLOCK(pdp, 0, p); /* race to get the inode */
> + VOP_UNLOCK(pdp, p); /* race to get the inode */
> cnp->cn_flags |= PDIRUNLOCK;
> error = cd9660_vget_internal(vdp->v_mount, dp->i_ino, &tdp,
> dp->i_ino != ino, NULL);
> @@ -405,7 +405,7 @@ found:
> if (error)
> return (error);
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(pdp, 0, p);
> + VOP_UNLOCK(pdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> *vpp = tdp;
> Index: sys/isofs/cd9660/cd9660_node.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/cd9660/cd9660_node.c,v
> retrieving revision 1.29
> diff -u -p -r1.29 cd9660_node.c
> --- sys/isofs/cd9660/cd9660_node.c 14 Mar 2015 03:38:50 -0000 1.29
> +++ sys/isofs/cd9660/cd9660_node.c 2 Mar 2016 20:02:50 -0000
> @@ -194,7 +194,7 @@ cd9660_inactive(v)
> #endif
>
> ip->i_flag = 0;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> /*
> * If we are done with the inode, reclaim it
> * so that it can be reused immediately.
> Index: sys/isofs/cd9660/cd9660_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/cd9660/cd9660_vfsops.c,v
> retrieving revision 1.72
> diff -u -p -r1.72 cd9660_vfsops.c
> --- sys/isofs/cd9660/cd9660_vfsops.c 27 Feb 2016 18:50:38 -0000 1.72
> +++ sys/isofs/cd9660/cd9660_vfsops.c 2 Mar 2016 20:02:51 -0000
> @@ -190,7 +190,7 @@ cd9660_mount(mp, path, data, ndp, p)
> vput(devvp);
> return (error);
> }
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> }
> if ((mp->mnt_flag & MNT_UPDATE) == 0)
> error = iso_mountfs(devvp, mp, p, &args);
> @@ -261,7 +261,7 @@ iso_mountfs(devvp, mp, p, argp)
> return (EBUSY);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> @@ -452,7 +452,7 @@ out:
>
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, NOCRED, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
>
> if (isomp) {
> free((caddr_t)isomp, M_ISOFSMNT, 0);
> Index: sys/isofs/cd9660/cd9660_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/cd9660/cd9660_vnops.c,v
> retrieving revision 1.74
> diff -u -p -r1.74 cd9660_vnops.c
> --- sys/isofs/cd9660/cd9660_vnops.c 19 Jan 2016 19:11:21 -0000 1.74
> +++ sys/isofs/cd9660/cd9660_vnops.c 2 Mar 2016 20:02:51 -0000
> @@ -708,7 +708,7 @@ cd9660_unlock(void *v)
> struct vop_unlock_args *ap = v;
> struct vnode *vp = ap->a_vp;
>
> - return (lockmgr(&VTOI(vp)->i_lock, ap->a_flags | LK_RELEASE, NULL));
> + return (lockmgr(&VTOI(vp)->i_lock, LK_RELEASE, NULL));
> }
>
> /*
> Index: sys/isofs/udf/udf_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/udf/udf_vfsops.c,v
> retrieving revision 1.46
> diff -u -p -r1.46 udf_vfsops.c
> --- sys/isofs/udf/udf_vfsops.c 31 Aug 2015 06:56:25 -0000 1.46
> +++ sys/isofs/udf/udf_vfsops.c 2 Mar 2016 20:02:51 -0000
> @@ -171,7 +171,7 @@ udf_mount(struct mount *mp, const char *
> if (p->p_ucred->cr_uid) {
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, VREAD, p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error) {
> vrele(devvp);
> return (error);
> @@ -251,7 +251,7 @@ udf_mountfs(struct vnode *devvp, struct
> return (EBUSY);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> @@ -453,7 +453,7 @@ bail:
>
> vn_lock(devvp, LK_EXCLUSIVE|LK_RETRY, p);
> VOP_CLOSE(devvp, FREAD, FSCRED, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
>
> return (error);
> }
> @@ -477,7 +477,7 @@ udf_unmount(struct mount *mp, int mntfla
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> vinvalbuf(devvp, V_SAVE, NOCRED, p, 0, 0);
> error = VOP_CLOSE(devvp, FREAD, NOCRED, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> Index: sys/isofs/udf/udf_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/isofs/udf/udf_vnops.c,v
> retrieving revision 1.62
> diff -u -p -r1.62 udf_vnops.c
> --- sys/isofs/udf/udf_vnops.c 2 Feb 2016 16:44:44 -0000 1.62
> +++ sys/isofs/udf/udf_vnops.c 2 Mar 2016 20:02:51 -0000
> @@ -911,7 +911,7 @@ udf_unlock(void *v)
>
> struct vnode *vp = ap->a_vp;
>
> - return (lockmgr(&VTOU(vp)->u_lock, ap->a_flags | LK_RELEASE, NULL));
> + return (lockmgr(&VTOU(vp)->u_lock, LK_RELEASE, NULL));
> }
>
> int
> @@ -1105,7 +1105,7 @@ lookloop:
> nchstats.ncs_pass2++;
> if (!(flags & LOCKPARENT) || !(flags & ISLASTCN)) {
> ap->a_cnp->cn_flags |= PDIRUNLOCK;
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> }
>
> *vpp = tdp;
> @@ -1152,7 +1152,7 @@ udf_inactive(void *v)
> /*
> * No need to sync anything, so just unlock the vnode and return.
> */
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> return (0);
> }
> Index: sys/kern/exec_script.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/exec_script.c,v
> retrieving revision 1.37
> diff -u -p -r1.37 exec_script.c
> --- sys/kern/exec_script.c 31 Dec 2015 18:55:33 -0000 1.37
> +++ sys/kern/exec_script.c 2 Mar 2016 20:02:51 -0000
> @@ -165,7 +165,7 @@ check_shell:
> */
> vn_lock(scriptvp, LK_EXCLUSIVE|LK_RETRY, p);
> error = VOP_ACCESS(scriptvp, VREAD, p->p_ucred, p);
> - VOP_UNLOCK(scriptvp, 0, p);
> + VOP_UNLOCK(scriptvp, p);
> if (error == EACCES || script_sbits) {
> struct file *fp;
>
> Index: sys/kern/init_main.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/init_main.c,v
> retrieving revision 1.248
> diff -u -p -r1.248 init_main.c
> --- sys/kern/init_main.c 3 Jan 2016 00:15:59 -0000 1.248
> +++ sys/kern/init_main.c 2 Mar 2016 20:02:51 -0000
> @@ -477,7 +477,7 @@ main(void *framep)
> panic("cannot find root vnode");
> p->p_fd->fd_cdir = rootvnode;
> vref(p->p_fd->fd_cdir);
> - VOP_UNLOCK(rootvnode, 0, p);
> + VOP_UNLOCK(rootvnode, p);
> p->p_fd->fd_rdir = NULL;
>
> /*
> Index: sys/kern/kern_acct.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_acct.c,v
> retrieving revision 1.30
> diff -u -p -r1.30 kern_acct.c
> --- sys/kern/kern_acct.c 5 Dec 2015 10:11:53 -0000 1.30
> +++ sys/kern/kern_acct.c 2 Mar 2016 20:02:51 -0000
> @@ -116,7 +116,7 @@ sys_acct(struct proc *p, void *v, regist
> p);
> if ((error = vn_open(&nd, FWRITE|O_APPEND, 0)) != 0)
> return (error);
> - VOP_UNLOCK(nd.ni_vp, 0, p);
> + VOP_UNLOCK(nd.ni_vp, p);
> if (nd.ni_vp->v_type != VREG) {
> vn_close(nd.ni_vp, FWRITE, p->p_ucred, p);
> return (EACCES);
> Index: sys/kern/kern_descrip.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_descrip.c,v
> retrieving revision 1.128
> diff -u -p -r1.128 kern_descrip.c
> --- sys/kern/kern_descrip.c 6 Jan 2016 17:59:30 -0000 1.128
> +++ sys/kern/kern_descrip.c 2 Mar 2016 20:02:51 -0000
> @@ -752,7 +752,7 @@ sys_fpathconf(struct proc *p, void *v, r
> vp = fp->f_data;
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_PATHCONF(vp, SCARG(uap, name), retval);
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> break;
>
> default:
> Index: sys/kern/kern_exec.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_exec.c,v
> retrieving revision 1.173
> diff -u -p -r1.173 kern_exec.c
> --- sys/kern/kern_exec.c 5 Dec 2015 10:11:53 -0000 1.173
> +++ sys/kern/kern_exec.c 2 Mar 2016 20:02:51 -0000
> @@ -164,7 +164,7 @@ check_exec(struct proc *p, struct exec_p
> goto bad1;
>
> /* unlock vp, we need it unlocked from here */
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> /* now we have the file, get the exec header */
> error = vn_rdwr(UIO_READ, vp, epp->ep_hdr, epp->ep_hdrlen, 0,
> Index: sys/kern/kern_ktrace.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_ktrace.c,v
> retrieving revision 1.86
> diff -u -p -r1.86 kern_ktrace.c
> --- sys/kern/kern_ktrace.c 6 Dec 2015 17:50:21 -0000 1.86
> +++ sys/kern/kern_ktrace.c 2 Mar 2016 20:02:51 -0000
> @@ -452,7 +452,7 @@ sys_ktrace(struct proc *p, void *v, regi
> goto done;
> vp = nd.ni_vp;
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> if (vp->v_type != VREG) {
> error = EACCES;
> goto done;
> Index: sys/kern/kern_sig.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_sig.c,v
> retrieving revision 1.192
> diff -u -p -r1.192 kern_sig.c
> --- sys/kern/kern_sig.c 9 Jan 2016 06:13:43 -0000 1.192
> +++ sys/kern/kern_sig.c 2 Mar 2016 20:02:52 -0000
> @@ -1608,7 +1608,7 @@ coredump(struct proc *p)
> */
> vp = nd.ni_vp;
> if ((error = VOP_GETATTR(vp, &vattr, cred, p)) != 0) {
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> vn_close(vp, FWRITE, cred, p);
> goto out;
> }
> @@ -1616,7 +1616,7 @@ coredump(struct proc *p)
> vattr.va_mode & ((VREAD | VWRITE) >> 3 | (VREAD | VWRITE) >> 6) ||
> vattr.va_uid != cred->cr_uid) {
> error = EACCES;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> vn_close(vp, FWRITE, cred, p);
> goto out;
> }
> @@ -1629,7 +1629,7 @@ coredump(struct proc *p)
> io.io_vp = vp;
> io.io_cred = cred;
> io.io_offset = 0;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> vref(vp);
> error = vn_close(vp, FWRITE, cred, p);
> if (error == 0)
> Index: sys/kern/spec_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/spec_vnops.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 spec_vnops.c
> --- sys/kern/spec_vnops.c 19 Jan 2016 19:13:38 -0000 1.85
> +++ sys/kern/spec_vnops.c 2 Mar 2016 20:02:52 -0000
> @@ -154,7 +154,7 @@ spec_open(void *v)
> vp->v_flag |= VISTTY;
> if (cdevsw[maj].d_flags & D_CLONE)
> return (spec_open_clone(ap));
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = (*cdevsw[maj].d_open)(dev, ap->a_mode, S_IFCHR, p);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> return (error);
> @@ -219,7 +219,7 @@ spec_read(void *v)
> switch (vp->v_type) {
>
> case VCHR:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = (*cdevsw[major(vp->v_rdev)].d_read)
> (vp->v_rdev, uio, ap->a_ioflag);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -273,7 +273,7 @@ spec_inactive(void *v)
> {
> struct vop_inactive_args *ap = v;
>
> - VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
> + VOP_UNLOCK(ap->a_vp, ap->a_p);
> return (0);
> }
>
> @@ -306,7 +306,7 @@ spec_write(void *v)
> switch (vp->v_type) {
>
> case VCHR:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = (*cdevsw[major(vp->v_rdev)].d_write)
> (vp->v_rdev, uio, ap->a_ioflag);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -525,7 +525,7 @@ spec_close(void *v)
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(vp, V_SAVE, ap->a_cred, p, 0, 0);
> if (!(vp->v_flag & VXLOCK))
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> if (error)
> return (error);
> /*
> @@ -550,7 +550,7 @@ spec_close(void *v)
> /* release lock if held and this isn't coming from vclean() */
> relock = VOP_ISLOCKED(vp) && !(vp->v_flag & VXLOCK);
> if (relock)
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = (*devclose)(dev, ap->a_fflag, mode, p);
> if (relock)
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -582,7 +582,7 @@ spec_setattr(void *v)
>
> vn_lock(vp->v_specparent, LK_EXCLUSIVE|LK_RETRY, p);
> error = VOP_SETATTR(vp->v_specparent, ap->a_vap, ap->a_cred, p);
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> return (error);
> }
> @@ -723,7 +723,7 @@ spec_open_clone(struct vop_open_args *ap
> return (error); /* out of vnodes */
> }
>
> - VOP_UNLOCK(vp, 0, ap->a_p);
> + VOP_UNLOCK(vp, ap->a_p);
>
> error = cdevsw[major(vp->v_rdev)].d_open(cvp->v_rdev, ap->a_mode,
> S_IFCHR, ap->a_p);
> Index: sys/kern/tty.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/tty.c,v
> retrieving revision 1.129
> diff -u -p -r1.129 tty.c
> --- sys/kern/tty.c 28 Jan 2016 18:02:36 -0000 1.129
> +++ sys/kern/tty.c 2 Mar 2016 20:02:52 -0000
> @@ -803,7 +803,7 @@ ttioctl(struct tty *tp, u_long cmd, cadd
> return (error);
> vn_lock(nid.ni_vp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(nid.ni_vp, VREAD, p->p_ucred, p);
> - VOP_UNLOCK(nid.ni_vp, 0, p);
> + VOP_UNLOCK(nid.ni_vp, p);
> vrele(nid.ni_vp);
> if (error)
> return (error);
> Index: sys/kern/tty_pty.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/tty_pty.c,v
> retrieving revision 1.76
> diff -u -p -r1.76 tty_pty.c
> --- sys/kern/tty_pty.c 28 Jan 2016 18:02:36 -0000 1.76
> +++ sys/kern/tty_pty.c 2 Mar 2016 20:02:52 -0000
> @@ -1112,7 +1112,7 @@ retry:
> cfp->f_type = DTYPE_VNODE;
> cfp->f_ops = &vnops;
> cfp->f_data = (caddr_t) cnd.ni_vp;
> - VOP_UNLOCK(cnd.ni_vp, 0, p);
> + VOP_UNLOCK(cnd.ni_vp, p);
>
> /*
> * Open the slave.
> @@ -1146,7 +1146,7 @@ retry:
> goto bad;
> }
> }
> - VOP_UNLOCK(snd.ni_vp, 0, p);
> + VOP_UNLOCK(snd.ni_vp, p);
> if (snd.ni_vp->v_usecount > 1 ||
> (snd.ni_vp->v_flag & (VALIASED)))
> VOP_REVOKE(snd.ni_vp, REVOKEALL);
> @@ -1167,7 +1167,7 @@ retry:
> sfp->f_type = DTYPE_VNODE;
> sfp->f_ops = &vnops;
> sfp->f_data = (caddr_t) snd.ni_vp;
> - VOP_UNLOCK(snd.ni_vp, 0, p);
> + VOP_UNLOCK(snd.ni_vp, p);
>
> /* now, put the indexen and names into struct ptmget */
> ptm->cfd = cindx;
> Index: sys/kern/tty_tty.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/tty_tty.c,v
> retrieving revision 1.17
> diff -u -p -r1.17 tty_tty.c
> --- sys/kern/tty_tty.c 5 Dec 2015 10:11:53 -0000 1.17
> +++ sys/kern/tty_tty.c 2 Mar 2016 20:02:52 -0000
> @@ -59,7 +59,7 @@ cttyopen(dev_t dev, int flag, int mode,
> return (ENXIO);
> vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_OPEN(ttyvp, flag, NOCRED, p);
> - VOP_UNLOCK(ttyvp, 0, p);
> + VOP_UNLOCK(ttyvp, p);
> return (error);
> }
>
> @@ -74,7 +74,7 @@ cttyread(dev_t dev, struct uio *uio, int
> return (EIO);
> vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_READ(ttyvp, uio, flag, NOCRED);
> - VOP_UNLOCK(ttyvp, 0, p);
> + VOP_UNLOCK(ttyvp, p);
> return (error);
> }
>
> @@ -89,7 +89,7 @@ cttywrite(dev_t dev, struct uio *uio, in
> return (EIO);
> vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_WRITE(ttyvp, uio, flag, NOCRED);
> - VOP_UNLOCK(ttyvp, 0, p);
> + VOP_UNLOCK(ttyvp, p);
> return (error);
> }
>
> Index: sys/kern/uipc_usrreq.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v
> retrieving revision 1.95
> diff -u -p -r1.95 uipc_usrreq.c
> --- sys/kern/uipc_usrreq.c 5 Dec 2015 10:11:53 -0000 1.95
> +++ sys/kern/uipc_usrreq.c 2 Mar 2016 20:02:52 -0000
> @@ -468,7 +468,7 @@ unp_bind(struct unpcb *unp, struct mbuf
> unp->unp_connid.gid = p->p_ucred->cr_gid;
> unp->unp_connid.pid = p->p_p->ps_pid;
> unp->unp_flags |= UNP_FEIDSBIND;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> return (0);
> }
>
> Index: sys/kern/vfs_cache.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_cache.c,v
> retrieving revision 1.47
> diff -u -p -r1.47 vfs_cache.c
> --- sys/kern/vfs_cache.c 14 Mar 2015 03:38:51 -0000 1.47
> +++ sys/kern/vfs_cache.c 2 Mar 2016 20:02:52 -0000
> @@ -202,7 +202,7 @@ cache_lookup(struct vnode *dvp, struct v
> vref(dvp);
> error = 0;
> } else if (cnp->cn_flags & ISDOTDOT) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> error = vget(vp, LK_EXCLUSIVE, p);
> /*
> @@ -223,7 +223,7 @@ cache_lookup(struct vnode *dvp, struct v
> * ISLASTCN is set, unlock the directory vnode.
> */
> if (error || (~cnp->cn_flags & (LOCKPARENT|ISLASTCN)) != 0) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> }
> Index: sys/kern/vfs_getcwd.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_getcwd.c,v
> retrieving revision 1.25
> diff -u -p -r1.25 vfs_getcwd.c
> --- sys/kern/vfs_getcwd.c 14 Mar 2015 03:38:51 -0000 1.25
> +++ sys/kern/vfs_getcwd.c 2 Mar 2016 20:02:52 -0000
> @@ -226,7 +226,7 @@ vfs_getcwd_getcache(struct vnode **lvpp,
>
>
> /* Release current lock before acquiring the parent lock */
> - VOP_UNLOCK(lvp, 0, p);
> + VOP_UNLOCK(lvp, p);
>
> error = vget(uvp, LK_EXCLUSIVE | LK_RETRY, p);
> if (error)
> Index: sys/kern/vfs_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_lookup.c,v
> retrieving revision 1.59
> diff -u -p -r1.59 vfs_lookup.c
> --- sys/kern/vfs_lookup.c 2 Nov 2015 16:31:55 -0000 1.59
> +++ sys/kern/vfs_lookup.c 2 Mar 2016 20:02:52 -0000
> @@ -216,7 +216,7 @@ fail:
> return (0);
> }
> if ((cnp->cn_flags & LOCKPARENT) && (cnp->cn_flags & ISLASTCN))
> - VOP_UNLOCK(ndp->ni_dvp, 0, p);
> + VOP_UNLOCK(ndp->ni_dvp, p);
> if (ndp->ni_loopcnt++ >= SYMLOOP_MAX) {
> error = ELOOP;
> break;
> @@ -547,7 +547,7 @@ dirloop:
> (cnp->cn_flags & NOCROSSMOUNT) == 0) {
> if (vfs_busy(mp, VB_READ|VB_WAIT))
> continue;
> - VOP_UNLOCK(dp, 0, p);
> + VOP_UNLOCK(dp, p);
> error = VFS_ROOT(mp, &tdp);
> vfs_unbusy(mp);
> if (error) {
> @@ -614,13 +614,13 @@ terminal:
> vrele(ndp->ni_dvp);
> }
> if ((cnp->cn_flags & LOCKLEAF) == 0)
> - VOP_UNLOCK(dp, 0, p);
> + VOP_UNLOCK(dp, p);
> return (0);
>
> bad2:
> if ((cnp->cn_flags & LOCKPARENT) && (cnp->cn_flags & ISLASTCN) &&
> ((cnp->cn_flags & PDIRUNLOCK) == 0))
> - VOP_UNLOCK(ndp->ni_dvp, 0, p);
> + VOP_UNLOCK(ndp->ni_dvp, p);
> vrele(ndp->ni_dvp);
> bad:
> if (dpunlocked)
> @@ -748,12 +748,12 @@ vfs_relookup(struct vnode *dvp, struct v
> if (!wantparent)
> vrele(dvp);
> if ((cnp->cn_flags & LOCKLEAF) == 0)
> - VOP_UNLOCK(dp, 0, p);
> + VOP_UNLOCK(dp, p);
> return (0);
>
> bad2:
> if ((cnp->cn_flags & LOCKPARENT) && (cnp->cn_flags & ISLASTCN))
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> vrele(dvp);
> bad:
> vput(dp);
> Index: sys/kern/vfs_subr.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_subr.c,v
> retrieving revision 1.238
> diff -u -p -r1.238 vfs_subr.c
> --- sys/kern/vfs_subr.c 5 Dec 2015 10:11:53 -0000 1.238
> +++ sys/kern/vfs_subr.c 2 Mar 2016 20:02:53 -0000
> @@ -576,7 +576,7 @@ loop:
> * The vnodes created by bdevvp should not be aliased (why?).
> */
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> vclean(vp, 0, p);
> vp->v_op = nvp->v_op;
> vp->v_tag = nvp->v_tag;
> @@ -707,7 +707,7 @@ vput(struct vnode *vp)
> #endif
> vp->v_usecount--;
> if (vp->v_usecount > 0) {
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> return;
> }
>
> @@ -974,7 +974,7 @@ vclean(struct vnode *vp, int flags, stru
> * Any other processes trying to obtain this lock must first
> * wait for VXLOCK to clear, then call the new lock operation.
> */
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> }
>
> /*
> Index: sys/kern/vfs_sync.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_sync.c,v
> retrieving revision 1.54
> diff -u -p -r1.54 vfs_sync.c
> --- sys/kern/vfs_sync.c 14 Mar 2015 03:38:51 -0000 1.54
> +++ sys/kern/vfs_sync.c 2 Mar 2016 20:02:53 -0000
> @@ -360,7 +360,7 @@ sync_inactive(void *v)
> int s;
>
> if (vp->v_usecount == 0) {
> - VOP_UNLOCK(vp, 0, ap->a_p);
> + VOP_UNLOCK(vp, ap->a_p);
> return (0);
> }
>
> Index: sys/kern/vfs_syscalls.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
> retrieving revision 1.251
> diff -u -p -r1.251 vfs_syscalls.c
> --- sys/kern/vfs_syscalls.c 6 Jan 2016 17:59:30 -0000 1.251
> +++ sys/kern/vfs_syscalls.c 2 Mar 2016 20:02:53 -0000
> @@ -297,7 +297,7 @@ update:
> vfsp->vfc_refcount++;
> TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list);
> checkdirs(vp);
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> if ((mp->mnt_flag & MNT_RDONLY) == 0)
> error = vfs_allocate_syncvnode(mp);
> vfs_unbusy(mp);
> @@ -705,7 +705,7 @@ sys_fchdir(struct proc *p, void *v, regi
> vput(vp);
> return (error);
> }
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> old_cdir = fdp->fd_cdir;
> fdp->fd_cdir = vp;
> vrele(old_cdir);
> @@ -793,7 +793,7 @@ change_dir(struct nameidata *ndp, struct
> if (error)
> vput(vp);
> else
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> return (error);
> }
>
> @@ -905,7 +905,7 @@ doopenat(struct proc *p, int fd, const c
> type = F_FLOCK;
> if ((flags & FNONBLOCK) == 0)
> type |= F_WAIT;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type);
> if (error) {
> /* closef will vn_close the file for us. */
> @@ -929,14 +929,14 @@ doopenat(struct proc *p, int fd, const c
> error = VOP_SETATTR(vp, &vattr, fp->f_cred, p);
> }
> if (error) {
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> /* closef will close the file for us. */
> fdremove(fdp, indx);
> closef(fp, p);
> goto out;
> }
> }
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> *retval = indx;
> FILE_SET_MATURE(fp, p);
> out:
> @@ -1089,7 +1089,7 @@ sys_fhopen(struct proc *p, void *v, regi
> type = F_FLOCK;
> if ((flags & FNONBLOCK) == 0)
> type |= F_WAIT;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type);
> if (error) {
> vp = NULL; /* closef will vn_close the file */
> @@ -1098,7 +1098,7 @@ sys_fhopen(struct proc *p, void *v, regi
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> fp->f_iflags |= FIF_HASLOCK;
> }
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> *retval = indx;
> FILE_SET_MATURE(fp, p);
>
> @@ -2040,7 +2040,7 @@ sys_fchmod(struct proc *p, void *v, regi
> vattr.va_mode = mode & ALLPERMS;
> error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
> }
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> FRELE(fp, p);
> return (error);
> }
> @@ -2218,7 +2218,7 @@ sys_fchown(struct proc *p, void *v, regi
> error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
> }
> out:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> FRELE(fp, p);
> return (error);
> }
> @@ -2484,7 +2484,7 @@ sys_ftruncate(struct proc *p, void *v, r
> vattr.va_size = len;
> error = VOP_SETATTR(vp, &vattr, fp->f_cred, p);
> }
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> bad:
> FRELE(fp, p);
> return (error);
> @@ -2513,7 +2513,7 @@ sys_fsync(struct proc *p, void *v, regis
> error = softdep_fsync(vp);
> #endif
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> FRELE(fp, p);
> return (error);
> }
> @@ -2749,7 +2749,7 @@ sys_getdents(struct proc *p, void *v, re
> auio.uio_offset = fp->f_offset;
> error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag);
> fp->f_offset = auio.uio_offset;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> if (error)
> goto bad;
> *retval = buflen - auio.uio_resid;
> Index: sys/kern/vfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_vnops.c,v
> retrieving revision 1.83
> diff -u -p -r1.83 vfs_vnops.c
> --- sys/kern/vfs_vnops.c 6 Jan 2016 17:59:30 -0000 1.83
> +++ sys/kern/vfs_vnops.c 2 Mar 2016 20:02:53 -0000
> @@ -171,7 +171,7 @@ vn_open(struct nameidata *ndp, int fmode
>
> ndp->ni_vp = cip->ci_vp; /* return cloned vnode */
> vp->v_data = cip->ci_data; /* restore v_data */
> - VOP_UNLOCK(vp, 0, p); /* keep a reference */
> + VOP_UNLOCK(vp, p); /* keep a reference */
> vp = ndp->ni_vp; /* for the increment below */
>
> free(cip, M_TEMP, sizeof(*cip));
> @@ -311,7 +311,7 @@ vn_rdwr(enum uio_rw rw, struct vnode *vp
> error = VOP_WRITE(vp, &auio, ioflg, cred);
> }
> if ((ioflg & IO_NODELOCKED) == 0)
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> if (aresid)
> *aresid = auio.uio_resid;
> @@ -342,7 +342,7 @@ vn_read(struct file *fp, off_t *poff, st
> error = VOP_READ(vp, uio,
> (fp->f_flag & FNONBLOCK) ? IO_NDELAY : 0, cred);
> *poff += count - uio->uio_resid;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> return (error);
> }
>
> @@ -374,7 +374,7 @@ vn_write(struct file *fp, off_t *poff, s
> *poff = uio->uio_offset;
> else
> *poff += count - uio->uio_resid;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> return (error);
> }
>
> Index: sys/kern/vfs_vops.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_vops.c,v
> retrieving revision 1.14
> diff -u -p -r1.14 vfs_vops.c
> --- sys/kern/vfs_vops.c 19 Jul 2015 16:21:11 -0000 1.14
> +++ sys/kern/vfs_vops.c 2 Mar 2016 20:02:53 -0000
> @@ -517,11 +517,10 @@ VOP_LOCK(struct vnode *vp, int flags, st
> }
>
> int
> -VOP_UNLOCK(struct vnode *vp, int flags, struct proc *p)
> +VOP_UNLOCK(struct vnode *vp, struct proc *p)
> {
> struct vop_unlock_args a;
> a.a_vp = vp;
> - a.a_flags = flags;
> a.a_p = p;
>
> if (vp->v_op->vop_unlock == NULL)
> Index: sys/miscfs/fifofs/fifo_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/miscfs/fifofs/fifo_vnops.c,v
> retrieving revision 1.49
> diff -u -p -r1.49 fifo_vnops.c
> --- sys/miscfs/fifofs/fifo_vnops.c 1 Sep 2015 07:17:57 -0000 1.49
> +++ sys/miscfs/fifofs/fifo_vnops.c 2 Mar 2016 20:02:53 -0000
> @@ -176,7 +176,7 @@ fifo_open(void *v)
> }
> if ((ap->a_mode & O_NONBLOCK) == 0) {
> if ((ap->a_mode & FREAD) && fip->fi_writers == 0) {
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = tsleep(&fip->fi_readers,
> PCATCH | PSOCK, "fifor", 0);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -184,7 +184,7 @@ fifo_open(void *v)
> goto bad;
> }
> if ((ap->a_mode & FWRITE) && fip->fi_readers == 0) {
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = tsleep(&fip->fi_writers,
> PCATCH | PSOCK, "fifow", 0);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -219,7 +219,7 @@ fifo_read(void *v)
> return (0);
> if (ap->a_ioflag & IO_NDELAY)
> rso->so_state |= SS_NBIO;
> - VOP_UNLOCK(ap->a_vp, 0, p);
> + VOP_UNLOCK(ap->a_vp, p);
> error = soreceive(rso, NULL, uio, NULL, NULL, NULL, 0);
> vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY, p);
> if (ap->a_ioflag & IO_NDELAY) {
> @@ -249,7 +249,7 @@ fifo_write(void *v)
> #endif
> if (ap->a_ioflag & IO_NDELAY)
> wso->so_state |= SS_NBIO;
> - VOP_UNLOCK(ap->a_vp, 0, p);
> + VOP_UNLOCK(ap->a_vp, p);
> error = sosend(wso, NULL, ap->a_uio, NULL, NULL, 0);
> vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY, p);
> if (ap->a_ioflag & IO_NDELAY)
> @@ -335,7 +335,7 @@ fifo_inactive(void *v)
> {
> struct vop_inactive_args *ap = v;
>
> - VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
> + VOP_UNLOCK(ap->a_vp, ap->a_p);
> return (0);
> }
>
> Index: sys/miscfs/fuse/fuse_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/miscfs/fuse/fuse_lookup.c,v
> retrieving revision 1.10
> diff -u -p -r1.10 fuse_lookup.c
> --- sys/miscfs/fuse/fuse_lookup.c 16 Dec 2014 18:30:04 -0000 1.10
> +++ sys/miscfs/fuse/fuse_lookup.c 2 Mar 2016 20:02:53 -0000
> @@ -100,7 +100,7 @@ fusefs_lookup(void *v)
> cnp->cn_flags |= SAVENAME;
>
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
>
> @@ -155,7 +155,7 @@ fusefs_lookup(void *v)
> }
>
> if (flags & ISDOTDOT) {
> - VOP_UNLOCK(vdp, 0, p); /* race to get the inode */
> + VOP_UNLOCK(vdp, p); /* race to get the inode */
> cnp->cn_flags |= PDIRUNLOCK;
>
> error = VFS_VGET(fmp->mp, nid, &tdp);
> @@ -199,7 +199,7 @@ fusefs_lookup(void *v)
> VTOI(tdp)->parent = dp->ufs_ino.i_number;
>
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
>
> Index: sys/miscfs/fuse/fuse_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/miscfs/fuse/fuse_vnops.c,v
> retrieving revision 1.26
> diff -u -p -r1.26 fuse_vnops.c
> --- sys/miscfs/fuse/fuse_vnops.c 22 Jan 2016 17:09:43 -0000 1.26
> +++ sys/miscfs/fuse/fuse_vnops.c 2 Mar 2016 20:02:53 -0000
> @@ -606,7 +606,7 @@ fusefs_link(void *v)
>
> out1:
> if (dvp != vp)
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> out2:
> vput(dvp);
> return (error);
> @@ -767,7 +767,7 @@ fusefs_inactive(void *v)
>
> error = VOP_GETATTR(vp, &vattr, cred, p);
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> if (error)
> vrecycle(vp, p);
> @@ -1219,7 +1219,7 @@ abortit:
> dp == ip ||
> (fcnp->cn_flags & ISDOTDOT) ||
> (tcnp->cn_flags & ISDOTDOT)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EINVAL;
> goto abortit;
> }
> @@ -1228,13 +1228,13 @@ abortit:
>
> if (!fmp->sess_init) {
> error = ENXIO;
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> goto abortit;
> }
>
> if (fmp->undef_op & UNDEF_RENAME) {
> error = ENOSYS;
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> goto abortit;
> }
>
> @@ -1256,14 +1256,14 @@ abortit:
> }
>
> fb_delete(fbuf);
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> goto abortit;
> }
>
> fb_delete(fbuf);
> VN_KNOTE(fvp, NOTE_RENAME);
>
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> if (tdvp == tvp)
> vrele(tdvp);
> else
> @@ -1482,8 +1482,7 @@ fusefs_unlock(void *v)
> struct vop_unlock_args *ap = v;
> struct vnode *vp = ap->a_vp;
>
> - return (lockmgr(&VTOI(vp)->ufs_ino.i_lock, ap->a_flags | LK_RELEASE,
> - NULL));
> + return (lockmgr(&VTOI(vp)->ufs_ino.i_lock, LK_RELEASE, NULL));
> }
>
> int
> Index: sys/msdosfs/msdosfs_denode.c
> ===================================================================
> RCS file: /cvs/src/sys/msdosfs/msdosfs_denode.c,v
> retrieving revision 1.55
> diff -u -p -r1.55 msdosfs_denode.c
> --- sys/msdosfs/msdosfs_denode.c 23 Oct 2015 17:21:34 -0000 1.55
> +++ sys/msdosfs/msdosfs_denode.c 2 Mar 2016 20:02:54 -0000
> @@ -661,7 +661,7 @@ msdosfs_inactive(void *v)
> deupdat(dep, 0);
>
> out:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> /*
> * If we are done with the denode, reclaim it
> * so that it can be reused immediately.
> Index: sys/msdosfs/msdosfs_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/msdosfs/msdosfs_lookup.c,v
> retrieving revision 1.29
> diff -u -p -r1.29 msdosfs_lookup.c
> --- sys/msdosfs/msdosfs_lookup.c 23 Oct 2015 17:21:34 -0000 1.29
> +++ sys/msdosfs/msdosfs_lookup.c 2 Mar 2016 20:02:54 -0000
> @@ -400,7 +400,7 @@ notfound:;
> */
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (EJUSTRETURN);
> @@ -491,7 +491,7 @@ foundroot:;
> return (error);
> *vpp = DETOV(tdp);
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -524,7 +524,7 @@ foundroot:;
> *vpp = DETOV(tdp);
> cnp->cn_flags |= SAVENAME;
> if (!lockparent)
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> return (0);
> }
>
> @@ -549,7 +549,7 @@ foundroot:;
> */
> pdp = vdp;
> if (flags & ISDOTDOT) {
> - VOP_UNLOCK(pdp, 0, p); /* race to get the inode */
> + VOP_UNLOCK(pdp, p); /* race to get the inode */
> cnp->cn_flags |= PDIRUNLOCK;
> if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0) {
> if (vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, p) == 0)
> @@ -572,7 +572,7 @@ foundroot:;
> if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0)
> return (error);
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(pdp, 0, p);
> + VOP_UNLOCK(pdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> *vpp = DETOV(tdp);
> Index: sys/msdosfs/msdosfs_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/msdosfs/msdosfs_vfsops.c,v
> retrieving revision 1.73
> diff -u -p -r1.73 msdosfs_vfsops.c
> --- sys/msdosfs/msdosfs_vfsops.c 23 Oct 2015 17:21:34 -0000 1.73
> +++ sys/msdosfs/msdosfs_vfsops.c 2 Mar 2016 20:02:54 -0000
> @@ -148,7 +148,7 @@ msdosfs_mount(struct mount *mp, const ch
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, VREAD | VWRITE,
> p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
> }
> @@ -207,7 +207,7 @@ msdosfs_mount(struct mount *mp, const ch
> accessmode |= VWRITE;
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, accessmode, p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> goto error_devvp;
> }
> @@ -302,7 +302,7 @@ msdosfs_mountfs(struct vnode *devvp, str
> return (EBUSY);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> @@ -584,7 +584,7 @@ error_exit:
>
> vn_lock(devvp, LK_EXCLUSIVE|LK_RETRY, p);
> (void) VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, NOCRED, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
>
> if (pmp) {
> if (pmp->pm_inusemap)
> @@ -706,7 +706,7 @@ msdosfs_sync_vnode(struct vnode *vp, voi
>
> if ((error = VOP_FSYNC(vp, msa->cred, msa->waitfor, msa->p)) != 0)
> msa->allerror = error;
> - VOP_UNLOCK(vp, 0, msa->p);
> + VOP_UNLOCK(vp, msa->p);
> vrele(vp);
>
> return (0);
> @@ -748,7 +748,7 @@ msdosfs_sync(struct mount *mp, int waitf
> vn_lock(pmp->pm_devvp, LK_EXCLUSIVE | LK_RETRY, p);
> if ((error = VOP_FSYNC(pmp->pm_devvp, cred, waitfor, p)) != 0)
> msa.allerror = error;
> - VOP_UNLOCK(pmp->pm_devvp, 0, p);
> + VOP_UNLOCK(pmp->pm_devvp, p);
> }
>
> return (msa.allerror);
> Index: sys/msdosfs/msdosfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/msdosfs/msdosfs_vnops.c,v
> retrieving revision 1.107
> diff -u -p -r1.107 msdosfs_vnops.c
> --- sys/msdosfs/msdosfs_vnops.c 5 Feb 2016 19:27:02 -0000 1.107
> +++ sys/msdosfs/msdosfs_vnops.c 2 Mar 2016 20:02:54 -0000
> @@ -1003,7 +1003,7 @@ abortit:
> (fcnp->cn_flags & ISDOTDOT) ||
> (tcnp->cn_flags & ISDOTDOT) ||
> (ip->de_flag & DE_RENAME)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EINVAL;
> goto abortit;
> }
> @@ -1035,7 +1035,7 @@ abortit:
> * call to doscheckpath().
> */
> error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_proc);
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> if (VTODE(fdvp)->de_StartCluster != VTODE(tdvp)->de_StartCluster)
> newparent = 1;
> vrele(fdvp);
> @@ -1104,7 +1104,7 @@ abortit:
> if ((fcnp->cn_flags & SAVESTART) == 0)
> panic("msdosfs_rename: lost from startdir");
> if (!newparent)
> - VOP_UNLOCK(tdvp, 0, p);
> + VOP_UNLOCK(tdvp, p);
> (void) vfs_relookup(fdvp, &fvp, fcnp);
> if (fvp == NULL) {
> /*
> @@ -1114,7 +1114,7 @@ abortit:
> panic("rename: lost dir entry");
> vrele(ap->a_fvp);
> if (newparent)
> - VOP_UNLOCK(tdvp, 0, p);
> + VOP_UNLOCK(tdvp, p);
> vrele(tdvp);
> return 0;
> }
> @@ -1135,7 +1135,7 @@ abortit:
> panic("rename: lost dir entry");
> vrele(ap->a_fvp);
> if (newparent)
> - VOP_UNLOCK(fdvp, 0, p);
> + VOP_UNLOCK(fdvp, p);
> xp = NULL;
> } else {
> vrele(fvp);
> @@ -1157,7 +1157,7 @@ abortit:
> if (error) {
> bcopy(oldname, ip->de_Name, 11);
> if (newparent)
> - VOP_UNLOCK(fdvp, 0, p);
> + VOP_UNLOCK(fdvp, p);
> goto bad;
> }
> ip->de_refcnt++;
> @@ -1165,7 +1165,7 @@ abortit:
> if ((error = removede(zp, ip)) != 0) {
> /* XXX should really panic here, fs is corrupt */
> if (newparent)
> - VOP_UNLOCK(fdvp, 0, p);
> + VOP_UNLOCK(fdvp, p);
> goto bad;
> }
>
> @@ -1177,7 +1177,7 @@ abortit:
> if (error) {
> /* XXX should really panic here, fs is corrupt
> */
> if (newparent)
> - VOP_UNLOCK(fdvp, 0, p);
> + VOP_UNLOCK(fdvp, p);
> goto bad;
> }
> ip->de_diroffset = to_diroffset;
> @@ -1186,7 +1186,7 @@ abortit:
> }
> reinsert(ip);
> if (newparent)
> - VOP_UNLOCK(fdvp, 0, p);
> + VOP_UNLOCK(fdvp, p);
> }
>
> /*
> @@ -1225,7 +1225,7 @@ abortit:
> VN_KNOTE(fvp, NOTE_RENAME);
>
> bad:
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> vrele(fdvp);
> bad1:
> if (xp)
> @@ -1732,7 +1732,7 @@ msdosfs_unlock(void *v)
> struct vop_unlock_args *ap = v;
> struct vnode *vp = ap->a_vp;
>
> - return (lockmgr(&VTODE(vp)->de_lock, ap->a_flags | LK_RELEASE, NULL));
> + return (lockmgr(&VTODE(vp)->de_lock, LK_RELEASE, NULL));
> }
>
> int
> Index: sys/nfs/nfs_node.c
> ===================================================================
> RCS file: /cvs/src/sys/nfs/nfs_node.c,v
> retrieving revision 1.63
> diff -u -p -r1.63 nfs_node.c
> --- sys/nfs/nfs_node.c 9 Feb 2016 00:56:04 -0000 1.63
> +++ sys/nfs/nfs_node.c 2 Mar 2016 20:02:54 -0000
> @@ -202,7 +202,7 @@ nfs_inactive(void *v)
> }
> np->n_flag &= (NMODIFIED | NFLUSHINPROG | NFLUSHWANT);
>
> - VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
> + VOP_UNLOCK(ap->a_vp, ap->a_p);
> return (0);
> }
>
> Index: sys/nfs/nfs_serv.c
> ===================================================================
> RCS file: /cvs/src/sys/nfs/nfs_serv.c,v
> retrieving revision 1.106
> diff -u -p -r1.106 nfs_serv.c
> --- sys/nfs/nfs_serv.c 30 Aug 2015 02:18:28 -0000 1.106
> +++ sys/nfs/nfs_serv.c 2 Mar 2016 20:02:54 -0000
> @@ -2095,7 +2095,7 @@ nfsrv_readdir(struct nfsrv_descript *nfs
> error = 0;
> goto nfsmout;
> }
> - VOP_UNLOCK(vp, 0, procp);
> + VOP_UNLOCK(vp, procp);
> rbuf = malloc(fullsiz, M_TEMP, M_WAITOK);
> again:
> iv.iov_base = rbuf;
> @@ -2119,7 +2119,7 @@ again:
> error = getret;
> }
>
> - VOP_UNLOCK(vp, 0, procp);
> + VOP_UNLOCK(vp, procp);
> if (error) {
> vrele(vp);
> free(rbuf, M_TEMP, fullsiz);
> @@ -2294,7 +2294,7 @@ nfsrv_readdirplus(struct nfsrv_descript
> error = 0;
> goto nfsmout;
> }
> - VOP_UNLOCK(vp, 0, procp);
> + VOP_UNLOCK(vp, procp);
>
> rbuf = malloc(fullsiz, M_TEMP, M_WAITOK);
> again:
> @@ -2315,7 +2315,7 @@ again:
> off = (u_quad_t)io.uio_offset;
> getret = VOP_GETATTR(vp, &at, cred, procp);
>
> - VOP_UNLOCK(vp, 0, procp);
> + VOP_UNLOCK(vp, procp);
>
> if (!error)
> error = getret;
> Index: sys/nfs/nfs_subs.c
> ===================================================================
> RCS file: /cvs/src/sys/nfs/nfs_subs.c,v
> retrieving revision 1.129
> diff -u -p -r1.129 nfs_subs.c
> --- sys/nfs/nfs_subs.c 13 Feb 2016 15:45:05 -0000 1.129
> +++ sys/nfs/nfs_subs.c 2 Mar 2016 20:02:55 -0000
> @@ -1470,7 +1470,7 @@ nfsrv_fhtovp(fhandle_t *fhp, int lockfla
> else
> *rdonlyp = 0;
> if (!lockflag)
> - VOP_UNLOCK(*vpp, 0, p);
> + VOP_UNLOCK(*vpp, p);
>
> return (0);
> }
> Index: sys/nfs/nfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/nfs/nfs_vnops.c,v
> retrieving revision 1.167
> diff -u -p -r1.167 nfs_vnops.c
> --- sys/nfs/nfs_vnops.c 13 Feb 2016 15:45:05 -0000 1.167
> +++ sys/nfs/nfs_vnops.c 2 Mar 2016 20:02:55 -0000
> @@ -783,7 +783,7 @@ nfs_lookup(void *v)
> cnp->cn_flags |= SAVENAME;
> if ((!lockparent || !(flags & ISLASTCN)) &&
> newvp != dvp)
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> return (0);
> }
> cache_purge(newvp);
> @@ -840,7 +840,7 @@ dorpc:
> m_freem(info.nmi_mrep);
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -861,7 +861,7 @@ dorpc:
> } else
> nfsm_loadattr(newvp, NULL);
> } else if (flags & ISDOTDOT) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
>
> error = nfs_nget(dvp->v_mount, fhp, fhsize, &np);
> @@ -901,7 +901,7 @@ dorpc:
> } else
> nfsm_loadattr(newvp, NULL);
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> }
> @@ -931,7 +931,7 @@ nfsmout:
> if (newvp != NULLVP) {
> vrele(newvp);
> if (newvp != dvp)
> - VOP_UNLOCK(newvp, 0, p);
> + VOP_UNLOCK(newvp, p);
> }
> if ((cnp->cn_nameiop == CREATE || cnp->cn_nameiop == RENAME) &&
> (flags & ISLASTCN) && error == ENOENT) {
> Index: sys/ntfs/ntfs_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/ntfs/ntfs_vfsops.c,v
> retrieving revision 1.45
> diff -u -p -r1.45 ntfs_vfsops.c
> --- sys/ntfs/ntfs_vfsops.c 27 Feb 2016 18:50:38 -0000 1.45
> +++ sys/ntfs/ntfs_vfsops.c 2 Mar 2016 20:02:55 -0000
> @@ -196,7 +196,7 @@ ntfs_mount(struct mount *mp, const char
> amode = (mp->mnt_flag & MNT_RDONLY) ? VREAD : (VREAD | VWRITE);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> err = VOP_ACCESS(devvp, amode, p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (err)
> goto error_2;
> }
> @@ -299,7 +299,7 @@ ntfs_mountfs(struct vnode *devvp, struct
> return (EBUSY);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> @@ -463,7 +463,7 @@ out:
> /* lock the device vnode before calling VOP_CLOSE() */
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> (void)VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, NOCRED, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
>
> return (error);
> }
> Index: sys/ntfs/ntfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/ntfs/ntfs_vnops.c,v
> retrieving revision 1.40
> diff -u -p -r1.40 ntfs_vnops.c
> --- sys/ntfs/ntfs_vnops.c 14 Mar 2015 03:38:52 -0000 1.40
> +++ sys/ntfs/ntfs_vnops.c 2 Mar 2016 20:02:55 -0000
> @@ -192,7 +192,7 @@ ntfs_inactive(void *v)
> vprint("ntfs_inactive: pushing active", vp);
> #endif
>
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> /* XXX since we don't support any filesystem changes
> * right now, nothing more needs to be done
> @@ -634,7 +634,7 @@ ntfs_lookup(void *v)
> DPRINTF("ntfs_lookup: faking .. directory in %u\n",
> dip->i_number);
>
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
>
> error = ntfs_ntvattrget(ntmp, dip, NTFS_A_NAME, NULL, 0, &vap);
> @@ -671,7 +671,7 @@ ntfs_lookup(void *v)
> VTONT(*ap->a_vpp)->i_number);
>
> if(!lockparent || (cnp->cn_flags & ISLASTCN) == 0) {
> - VOP_UNLOCK(dvp, 0, p);
> + VOP_UNLOCK(dvp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> }
> Index: sys/sys/vnode.h
> ===================================================================
> RCS file: /cvs/src/sys/sys/vnode.h,v
> retrieving revision 1.133
> diff -u -p -r1.133 vnode.h
> --- sys/sys/vnode.h 3 Nov 2015 06:25:01 -0000 1.133
> +++ sys/sys/vnode.h 2 Mar 2016 20:02:55 -0000
> @@ -516,10 +516,9 @@ int VOP_LOCK(struct vnode *, int, struct
>
> struct vop_unlock_args {
> struct vnode *a_vp;
> - int a_flags;
> struct proc *a_p;
> };
> -int VOP_UNLOCK(struct vnode *, int, struct proc *);
> +int VOP_UNLOCK(struct vnode *, struct proc *);
>
> struct vop_bmap_args {
> struct vnode *a_vp;
> Index: sys/tmpfs/tmpfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/tmpfs/tmpfs_vnops.c,v
> retrieving revision 1.24
> diff -u -p -r1.24 tmpfs_vnops.c
> --- sys/tmpfs/tmpfs_vnops.c 6 Feb 2016 16:10:23 -0000 1.24
> +++ sys/tmpfs/tmpfs_vnops.c 2 Mar 2016 20:02:55 -0000
> @@ -182,7 +182,7 @@ tmpfs_lookup(void *v)
> * and thus prevents parent from disappearing.
> */
> rw_enter_write(&pnode->tn_nlock);
> - VOP_UNLOCK(dvp, 0, curproc);
> + VOP_UNLOCK(dvp, curproc);
>
> /*
> * Get a vnode of the '..' entry and re-acquire the lock.
> @@ -295,7 +295,7 @@ out:
> if ((error == 0 || error == EJUSTRETURN) && /* (1) */
> *vpp != dvp && /* (2) */
> (!lockparent || !lastcn)) { /* (3) */
> - VOP_UNLOCK(dvp, 0, curproc);
> + VOP_UNLOCK(dvp, curproc);
> cnp->cn_flags |= PDIRUNLOCK;
> } else
> KASSERT(VOP_ISLOCKED(dvp));
> @@ -829,7 +829,7 @@ tmpfs_link(void *v)
> error = 0;
> out:
> pool_put(&namei_pool, cnp->cn_pnbuf);
> - VOP_UNLOCK(vp, 0, curproc);
> + VOP_UNLOCK(vp, curproc);
> vput(dvp);
> return error;
> }
> @@ -1041,7 +1041,7 @@ tmpfs_inactive(void *v)
> if (vp->v_type == VREG && tmpfs_uio_cached(node))
> tmpfs_uio_uncache(node);
>
> - VOP_UNLOCK(vp, 0, curproc);
> + VOP_UNLOCK(vp, curproc);
>
> /*
> * If we are done with the node, reclaim it so that it can be reused
> @@ -1198,7 +1198,7 @@ tmpfs_unlock(void *v)
> struct vop_unlock_args *ap = v;
> tmpfs_node_t *tnp = VP_TO_TMPFS_NODE(ap->a_vp);
>
> - return lockmgr(&tnp->tn_vlock, ap->a_flags | LK_RELEASE, NULL);
> + return lockmgr(&tnp->tn_vlock, LK_RELEASE, NULL);
> }
>
> int
> @@ -1348,9 +1348,9 @@ tmpfs_rename(void *v)
> * the caller does reject rename("x/.", "y"). Go figure.)
> */
>
> - VOP_UNLOCK(tdvp, 0, curproc);
> + VOP_UNLOCK(tdvp, curproc);
> if ((tvp != NULL) && (tvp != tdvp))
> - VOP_UNLOCK(tvp, 0, curproc);
> + VOP_UNLOCK(tvp, curproc);
>
> vrele(fvp);
> if (tvp != NULL)
> @@ -1776,7 +1776,7 @@ fail3: if (tvp != NULL) {
> }
>
> fail2: vput(fvp);
> -fail1: VOP_UNLOCK(dvp, 0, curproc);
> +fail1: VOP_UNLOCK(dvp, curproc);
> fail0: return error;
> }
>
> @@ -1879,10 +1879,10 @@ tmpfs_rename_exit(struct tmpfs_mount *tm
> else
> vrele(tvp);
> }
> - VOP_UNLOCK(tdvp, 0, curproc);
> + VOP_UNLOCK(tdvp, curproc);
> vput(fvp);
> if (fdvp != tdvp)
> - VOP_UNLOCK(fdvp, 0, curproc);
> + VOP_UNLOCK(fdvp, curproc);
>
> #if 0 /* XXX */
> if (fdvp != tdvp)
> @@ -1906,7 +1906,7 @@ tmpfs_rename_lock_directory(struct vnode
>
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curproc);
> if (node->tn_spec.tn_dir.tn_parent == NULL) {
> - VOP_UNLOCK(vp, 0, curproc);
> + VOP_UNLOCK(vp, curproc);
> return ENOENT;
> }
>
> @@ -1976,7 +1976,7 @@ tmpfs_rename_genealogy(struct tmpfs_node
> node = parent;
> }
>
> - VOP_UNLOCK(tdnode->tn_vnode, 0, curproc);
> + VOP_UNLOCK(tdnode->tn_vnode, curproc);
> return 0;
> }
>
> @@ -2164,7 +2164,7 @@ fail4: if (b_vp != NULL) {
> }
>
> fail3: KASSERT(VOP_ISLOCKED(b_dvp) == LK_EXCLUSIVE);
> - VOP_UNLOCK(b_dvp, 0, curproc);
> + VOP_UNLOCK(b_dvp, curproc);
>
> fail2: if (a_vp != NULL) {
> KASSERT(VOP_ISLOCKED(a_vp) == LK_EXCLUSIVE);
> @@ -2172,7 +2172,7 @@ fail2: if (a_vp != NULL) {
> }
>
> fail1: KASSERT(VOP_ISLOCKED(a_dvp) == LK_EXCLUSIVE);
> - VOP_UNLOCK(a_dvp, 0, curproc);
> + VOP_UNLOCK(a_dvp, curproc);
>
> fail0: /* KASSERT(VOP_ISLOCKED(a_dvp) != LK_EXCLUSIVE); */
> /* KASSERT(VOP_ISLOCKED(b_dvp) != LK_EXCLUSIVE); */
> Index: sys/ufs/ext2fs/ext2fs_inode.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_inode.c,v
> retrieving revision 1.57
> diff -u -p -r1.57 ext2fs_inode.c
> --- sys/ufs/ext2fs/ext2fs_inode.c 27 Feb 2016 18:50:38 -0000 1.57
> +++ sys/ufs/ext2fs/ext2fs_inode.c 2 Mar 2016 20:02:55 -0000
> @@ -132,7 +132,7 @@ ext2fs_inactive(void *v)
> ext2fs_update(ip, 0);
> }
> out:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> /*
> * If we are done with the inode, reclaim it
> * so that it can be reused immediately.
> Index: sys/ufs/ext2fs/ext2fs_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_lookup.c,v
> retrieving revision 1.40
> diff -u -p -r1.40 ext2fs_lookup.c
> --- sys/ufs/ext2fs/ext2fs_lookup.c 16 Feb 2016 17:56:12 -0000 1.40
> +++ sys/ufs/ext2fs/ext2fs_lookup.c 2 Mar 2016 20:02:56 -0000
> @@ -429,7 +429,7 @@ searchloop:
> */
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (EJUSTRETURN);
> @@ -512,7 +512,7 @@ found:
> }
> *vpp = tdp;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -538,7 +538,7 @@ found:
> *vpp = tdp;
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -565,7 +565,7 @@ found:
> */
> pdp = vdp;
> if (flags & ISDOTDOT) {
> - VOP_UNLOCK(pdp, 0, p); /* race to get the inode */
> + VOP_UNLOCK(pdp, p); /* race to get the inode */
> cnp->cn_flags |= PDIRUNLOCK;
> if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp)) != 0) {
> if (vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, p) == 0)
> @@ -587,7 +587,7 @@ found:
> if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp)) != 0)
> return (error);
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(pdp, 0, p);
> + VOP_UNLOCK(pdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> *vpp = tdp;
> Index: sys/ufs/ext2fs/ext2fs_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_vfsops.c,v
> retrieving revision 1.86
> diff -u -p -r1.86 ext2fs_vfsops.c
> --- sys/ufs/ext2fs/ext2fs_vfsops.c 27 Feb 2016 18:50:38 -0000 1.86
> +++ sys/ufs/ext2fs/ext2fs_vfsops.c 2 Mar 2016 20:02:56 -0000
> @@ -211,7 +211,7 @@ ext2fs_mount(struct mount *mp, const cha
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, VREAD | VWRITE,
> p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
> }
> @@ -264,7 +264,7 @@ ext2fs_mount(struct mount *mp, const cha
> accessmode |= VWRITE;
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, accessmode, p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> goto error_devvp;
> }
> @@ -598,7 +598,7 @@ out:
> brelse(bp);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> (void)VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, cred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (ump) {
> free(ump->um_e2fs, M_UFSMNT, sizeof *ump->um_e2fs);
> free(ump, M_UFSMNT, sizeof *ump);
> @@ -667,7 +667,7 @@ ext2fs_flushfiles(struct mount *mp, int
> */
> vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_FSYNC(ump->um_devvp, p->p_ucred, MNT_WAIT, p);
> - VOP_UNLOCK(ump->um_devvp, 0, p);
> + VOP_UNLOCK(ump->um_devvp, p);
> return (error);
> }
>
> @@ -793,7 +793,7 @@ ext2fs_sync(struct mount *mp, int waitfo
> vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY, p);
> if ((error = VOP_FSYNC(ump->um_devvp, cred, waitfor, p)) != 0)
> allerror = error;
> - VOP_UNLOCK(ump->um_devvp, 0, p);
> + VOP_UNLOCK(ump->um_devvp, p);
> }
> /*
> * Write back modified superblock.
> Index: sys/ufs/ext2fs/ext2fs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_vnops.c,v
> retrieving revision 1.76
> diff -u -p -r1.76 ext2fs_vnops.c
> --- sys/ufs/ext2fs/ext2fs_vnops.c 27 Feb 2016 18:50:38 -0000 1.76
> +++ sys/ufs/ext2fs/ext2fs_vnops.c 2 Mar 2016 20:02:56 -0000
> @@ -477,7 +477,7 @@ ext2fs_link(void *v)
> pool_put(&namei_pool, cnp->cn_pnbuf);
> out1:
> if (dvp != vp)
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> out2:
> vput(dvp);
> return (error);
> @@ -585,13 +585,13 @@ abortit:
> dp = VTOI(fdvp);
> ip = VTOI(fvp);
> if ((nlink_t)ip->i_e2fs_nlink >= LINK_MAX) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EMLINK;
> goto abortit;
> }
> if ((ip->i_e2fs_flags & (EXT2_IMMUTABLE | EXT2_APPEND)) ||
> (dp->i_e2fs_flags & EXT2_APPEND)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EPERM;
> goto abortit;
> }
> @@ -601,7 +601,7 @@ abortit:
> error = VOP_ACCESS(tvp, VWRITE, tcnp->cn_cred,
> tcnp->cn_proc);
> if (error) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EACCES;
> goto abortit;
> }
> @@ -613,7 +613,7 @@ abortit:
> (fcnp->cn_flags&ISDOTDOT) ||
> (tcnp->cn_flags & ISDOTDOT) ||
> (ip->i_flag & IN_RENAME)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EINVAL;
> goto abortit;
> }
> @@ -641,7 +641,7 @@ abortit:
> ip->i_e2fs_nlink++;
> ip->i_flag |= IN_CHANGE;
> if ((error = ext2fs_update(ip, 1)) != 0) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> goto bad;
> }
>
> @@ -656,7 +656,7 @@ abortit:
> * call to checkpath().
> */
> error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_proc);
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> if (oldparent != dp->i_number)
> newparent = dp->i_number;
> if (doingdirectory && newparent) {
> Index: sys/ufs/ffs/ffs_softdep.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ffs/ffs_softdep.c,v
> retrieving revision 1.131
> diff -u -p -r1.131 ffs_softdep.c
> --- sys/ufs/ffs/ffs_softdep.c 9 Jan 2015 05:01:57 -0000 1.131
> +++ sys/ufs/ffs/ffs_softdep.c 2 Mar 2016 20:02:57 -0000
> @@ -868,7 +868,7 @@ softdep_flushworklist(struct mount *oldm
> *countp += count;
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_FSYNC(devvp, p->p_ucred, MNT_WAIT, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> break;
> }
> @@ -4568,7 +4568,7 @@ softdep_fsync(struct vnode *vp)
> * ufs_lookup for details on possible races.
> */
> FREE_LOCK(&lk);
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> error = VFS_VGET(mnt, parentino, &pvp);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
> if (error != 0)
> Index: sys/ufs/ffs/ffs_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ffs/ffs_vfsops.c,v
> retrieving revision 1.152
> diff -u -p -r1.152 ffs_vfsops.c
> --- sys/ufs/ffs/ffs_vfsops.c 27 Feb 2016 18:50:38 -0000 1.152
> +++ sys/ufs/ffs/ffs_vfsops.c 2 Mar 2016 20:02:57 -0000
> @@ -272,7 +272,7 @@ ffs_mount(struct mount *mp, const char *
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, VREAD | VWRITE,
> p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> goto error_1;
> }
> @@ -365,7 +365,7 @@ ffs_mount(struct mount *mp, const char *
> accessmode |= VWRITE;
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_ACCESS(devvp, accessmode, p->p_ucred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> goto error_2;
> }
> @@ -540,7 +540,7 @@ ffs_reload(struct mount *mountp, struct
> devvp = VFSTOUFS(mountp)->um_devvp;
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, 0, cred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> panic("ffs_reload: dirty1");
>
> @@ -686,7 +686,7 @@ ffs_mountfs(struct vnode *devvp, struct
> return (EBUSY);
> vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = vinvalbuf(devvp, V_SAVE, cred, p, 0, 0);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
> if (error)
> return (error);
>
> @@ -908,7 +908,7 @@ out:
>
> vn_lock(devvp, LK_EXCLUSIVE|LK_RETRY, p);
> (void)VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, cred, p);
> - VOP_UNLOCK(devvp, 0, p);
> + VOP_UNLOCK(devvp, p);
>
> if (ump) {
> free(ump->um_fs, M_UFSMNT, ump->um_fs->fs_sbsize);
> @@ -1073,7 +1073,7 @@ ffs_flushfiles(struct mount *mp, int fla
> */
> vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY, p);
> error = VOP_FSYNC(ump->um_devvp, p->p_ucred, MNT_WAIT, p);
> - VOP_UNLOCK(ump->um_devvp, 0, p);
> + VOP_UNLOCK(ump->um_devvp, p);
> return (error);
> }
>
> @@ -1138,7 +1138,7 @@ ffs_sync_vnode(struct vnode *vp, void *a
>
> if ((error = VOP_FSYNC(vp, fsa->cred, fsa->waitfor, fsa->p)))
> fsa->allerror = error;
> - VOP_UNLOCK(vp, 0, fsa->p);
> + VOP_UNLOCK(vp, fsa->p);
> vrele(vp);
>
> return (0);
> @@ -1200,7 +1200,7 @@ ffs_sync(struct mount *mp, int waitfor,
> vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY, p);
> if ((error = VOP_FSYNC(ump->um_devvp, cred, waitfor, p)) != 0)
> allerror = error;
> - VOP_UNLOCK(ump->um_devvp, 0, p);
> + VOP_UNLOCK(ump->um_devvp, p);
> }
> qsync(mp);
> /*
> Index: sys/ufs/mfs/mfs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/mfs/mfs_vnops.c,v
> retrieving revision 1.46
> diff -u -p -r1.46 mfs_vnops.c
> --- sys/ufs/mfs/mfs_vnops.c 14 Mar 2015 03:38:52 -0000 1.46
> +++ sys/ufs/mfs/mfs_vnops.c 2 Mar 2016 20:02:57 -0000
> @@ -235,7 +235,7 @@ mfs_inactive(void *v)
> if (mfsp->mfs_shutdown && bufq_peek(&mfsp->mfs_bufq))
> panic("mfs_inactive: not inactive");
> #endif
> - VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
> + VOP_UNLOCK(ap->a_vp, ap->a_p);
> return (0);
> }
>
> Index: sys/ufs/ufs/ufs_inode.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ufs/ufs_inode.c,v
> retrieving revision 1.41
> diff -u -p -r1.41 ufs_inode.c
> --- sys/ufs/ufs/ufs_inode.c 14 Mar 2015 03:38:53 -0000 1.41
> +++ sys/ufs/ufs/ufs_inode.c 2 Mar 2016 20:02:57 -0000
> @@ -111,7 +111,7 @@ ufs_inactive(void *v)
> UFS_UPDATE(ip, 0);
> }
> out:
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
>
> /*
> * If we are done with the inode, reclaim it
> Index: sys/ufs/ufs/ufs_lookup.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ufs/ufs_lookup.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 ufs_lookup.c
> --- sys/ufs/ufs/ufs_lookup.c 27 Feb 2016 18:50:38 -0000 1.48
> +++ sys/ufs/ufs/ufs_lookup.c 2 Mar 2016 20:02:57 -0000
> @@ -422,7 +422,7 @@ notfound:
> */
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (EJUSTRETURN);
> @@ -503,7 +503,7 @@ found:
> }
> *vpp = tdp;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -532,7 +532,7 @@ found:
> *vpp = tdp;
> cnp->cn_flags |= SAVENAME;
> if (!lockparent) {
> - VOP_UNLOCK(vdp, 0, p);
> + VOP_UNLOCK(vdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> return (0);
> @@ -559,7 +559,7 @@ found:
> */
> pdp = vdp;
> if (flags & ISDOTDOT) {
> - VOP_UNLOCK(pdp, 0, p); /* race to get the inode */
> + VOP_UNLOCK(pdp, p); /* race to get the inode */
> cnp->cn_flags |= PDIRUNLOCK;
> error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp);
> if (error) {
> @@ -583,7 +583,7 @@ found:
> if (error)
> return (error);
> if (!lockparent || !(flags & ISLASTCN)) {
> - VOP_UNLOCK(pdp, 0, p);
> + VOP_UNLOCK(pdp, p);
> cnp->cn_flags |= PDIRUNLOCK;
> }
> *vpp = tdp;
> @@ -778,7 +778,7 @@ ufs_direnter(struct vnode *dvp, struct v
> if ((error = VOP_BWRITE(bp)))
> return (error);
> if (tvp != NULL)
> - VOP_UNLOCK(tvp, 0, p);
> + VOP_UNLOCK(tvp, p);
> error = VOP_FSYNC(dvp, p->p_ucred, MNT_WAIT, p);
> if (tvp != NULL)
> vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY, p);
> @@ -918,7 +918,7 @@ ufs_direnter(struct vnode *dvp, struct v
>
> if (error == 0 && dp->i_endoff && dp->i_endoff < DIP(dp, size)) {
> if (tvp != NULL)
> - VOP_UNLOCK(tvp, 0, p);
> + VOP_UNLOCK(tvp, p);
> error = UFS_TRUNCATE(dp, (off_t)dp->i_endoff, IO_SYNC, cr);
> #ifdef UFS_DIRHASH
> if (error == 0 && dp->i_dirhash != NULL)
> Index: sys/ufs/ufs/ufs_quota.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ufs/ufs_quota.c,v
> retrieving revision 1.37
> diff -u -p -r1.37 ufs_quota.c
> --- sys/ufs/ufs/ufs_quota.c 9 Jan 2015 05:01:57 -0000 1.37
> +++ sys/ufs/ufs/ufs_quota.c 2 Mar 2016 20:02:57 -0000
> @@ -499,7 +499,7 @@ quotaon(struct proc *p, struct mount *mp
> if ((error = vn_open(&nd, FREAD|FWRITE, 0)) != 0)
> return (error);
> vp = nd.ni_vp;
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> if (vp->v_type != VREG) {
> (void) vn_close(vp, FREAD|FWRITE, p->p_ucred, p);
> return (EACCES);
> @@ -921,7 +921,7 @@ dqget(struct vnode *vp, u_long id, struc
> if (auio.uio_resid == sizeof(struct dqblk) && error == 0)
> memset(&dq->dq_dqb, 0, sizeof(struct dqblk));
> if (vp != dqvp)
> - VOP_UNLOCK(dqvp, 0, p);
> + VOP_UNLOCK(dqvp, p);
> if (dq->dq_flags & DQ_WANT)
> wakeup(dq);
> dq->dq_flags = 0;
> @@ -998,7 +998,7 @@ dqsync(struct vnode *vp, struct dquot *d
> (void) tsleep(dq, PINOD+2, "dqsync", 0);
> if ((dq->dq_flags & DQ_MOD) == 0) {
> if (vp != dqvp)
> - VOP_UNLOCK(dqvp, 0, p);
> + VOP_UNLOCK(dqvp, p);
> return (0);
> }
> }
> @@ -1019,7 +1019,7 @@ dqsync(struct vnode *vp, struct dquot *d
> wakeup(dq);
> dq->dq_flags &= ~(DQ_MOD|DQ_LOCK|DQ_WANT);
> if (vp != dqvp)
> - VOP_UNLOCK(dqvp, 0, p);
> + VOP_UNLOCK(dqvp, p);
> return (error);
> }
>
> Index: sys/ufs/ufs/ufs_vnops.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ufs/ufs_vnops.c,v
> retrieving revision 1.126
> diff -u -p -r1.126 ufs_vnops.c
> --- sys/ufs/ufs/ufs_vnops.c 27 Feb 2016 18:50:38 -0000 1.126
> +++ sys/ufs/ufs/ufs_vnops.c 2 Mar 2016 20:02:57 -0000
> @@ -673,7 +673,7 @@ ufs_link(void *v)
> VN_KNOTE(dvp, NOTE_WRITE);
> out1:
> if (dvp != vp)
> - VOP_UNLOCK(vp, 0, p);
> + VOP_UNLOCK(vp, p);
> out2:
> vput(dvp);
> return (error);
> @@ -798,13 +798,13 @@ abortit:
> dp = VTOI(fdvp);
> ip = VTOI(fvp);
> if ((nlink_t) DIP(ip, nlink) >= LINK_MAX) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EMLINK;
> goto abortit;
> }
> if ((DIP(ip, flags) & (IMMUTABLE | APPEND)) ||
> (DIP(dp, flags) & APPEND)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EPERM;
> goto abortit;
> }
> @@ -813,7 +813,7 @@ abortit:
> if (!error && tvp)
> error = VOP_ACCESS(tvp, VWRITE, tcnp->cn_cred,
> tcnp->cn_proc);
> if (error) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EACCES;
> goto abortit;
> }
> @@ -825,7 +825,7 @@ abortit:
> (fcnp->cn_flags & ISDOTDOT) ||
> (tcnp->cn_flags & ISDOTDOT) ||
> (ip->i_flag & IN_RENAME)) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> error = EINVAL;
> goto abortit;
> }
> @@ -856,7 +856,7 @@ abortit:
> if (DOINGSOFTDEP(fvp))
> softdep_change_linkcnt(ip, 0);
> if ((error = UFS_UPDATE(ip, !DOINGSOFTDEP(fvp))) != 0) {
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
> goto bad;
> }
>
> @@ -871,7 +871,7 @@ abortit:
> * call to checkpath().
> */
> error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_proc);
> - VOP_UNLOCK(fvp, 0, p);
> + VOP_UNLOCK(fvp, p);
>
> /* tdvp and tvp locked */
> if (oldparent != dp->i_number)
> @@ -1550,7 +1550,7 @@ ufs_unlock(void *v)
> struct vop_unlock_args *ap = v;
> struct vnode *vp = ap->a_vp;
>
> - return (lockmgr(&VTOI(vp)->i_lock, ap->a_flags | LK_RELEASE, NULL));
> + return (lockmgr(&VTOI(vp)->i_lock, LK_RELEASE, NULL));
> }
>
> /*
> Index: sys/uvm/uvm_vnode.c
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_vnode.c,v
> retrieving revision 1.91
> diff -u -p -r1.91 uvm_vnode.c
> --- sys/uvm/uvm_vnode.c 27 Aug 2015 18:59:58 -0000 1.91
> +++ sys/uvm/uvm_vnode.c 2 Mar 2016 20:02:58 -0000
> @@ -1185,7 +1185,7 @@ uvn_io(struct uvm_vnode *uvn, vm_page_t
> curproc->p_ucred);
>
> if ((uvn->u_flags & UVM_VNODE_VNISLOCKED) == 0)
> - VOP_UNLOCK(vn, 0, curproc);
> + VOP_UNLOCK(vn, curproc);
> }
>
> /* NOTE: vnode now unlocked (unless vnislocked) */
> @@ -1303,7 +1303,7 @@ uvm_vnp_uncache(struct vnode *vp)
> * unlocked causing us to return TRUE when we should not. we ignore
> * this as a false-positive return value doesn't hurt us.
> */
> - VOP_UNLOCK(vp, 0, curproc);
> + VOP_UNLOCK(vp, curproc);
> uvn_detach(&uvn->u_obj);
> vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curproc);
>
>