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);
>  
> 

Reply via email to