VNode sequencing and locking - part 3/4.
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 12 Aug 2006 00:26:22 +0000 (00:26 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 12 Aug 2006 00:26:22 +0000 (00:26 +0000)
VNode aliasing is handled by the namecache (aka nullfs), so there is no
longer a need to have VOP_LOCK, VOP_UNLOCK, or VOP_ISSLOCKED as 'VOP'
functions.  Both NFS and DEADFS have been using standard locking functions
for some time and are no longer special cases.  Replace all uses with
native calls to vn_lock, vn_unlock, and vn_islocked.

We can't have these as VOP functions anyhow because of the introduction of
the new SYSLINK transport layer, since vnode locks are primarily used to
protect the local vnode structure itself.

80 files changed:
sys/dev/disk/ccd/ccd.c
sys/dev/disk/vn/vn.c
sys/emulation/linux/i386/linprocfs/linprocfs_vnops.c
sys/emulation/linux/linux_file.c
sys/emulation/linux/linux_misc.c
sys/emulation/ndis/subr_ndis.c
sys/kern/imgact_elf.c
sys/kern/init_main.c
sys/kern/kern_acct.c
sys/kern/kern_acl.c
sys/kern/kern_exec.c
sys/kern/kern_ktrace.c
sys/kern/kern_sig.c
sys/kern/link_aout.c
sys/kern/link_elf.c
sys/kern/tty.c
sys/kern/tty_tty.c
sys/kern/uipc_syscalls.c
sys/kern/uipc_usrreq.c
sys/kern/vfs_cache.c
sys/kern/vfs_default.c
sys/kern/vfs_lock.c
sys/kern/vfs_lookup.c
sys/kern/vfs_nlookup.c
sys/kern/vfs_subr.c
sys/kern/vfs_sync.c
sys/kern/vfs_syscalls.c
sys/kern/vfs_vnops.c
sys/kern/vfs_vopops.c
sys/sys/vfsops.h
sys/sys/vnode.h
sys/vfs/coda/coda_vnops.c
sys/vfs/fdesc/fdesc_vnops.c
sys/vfs/fifofs/fifo_vnops.c
sys/vfs/gnu/ext2fs/ext2_lookup.c
sys/vfs/gnu/ext2fs/ext2_quota.c
sys/vfs/gnu/ext2fs/ext2_vfsops.c
sys/vfs/gnu/ext2fs/ext2_vnops.c
sys/vfs/gnu/ext2fs/fs.h
sys/vfs/hpfs/hpfs.h
sys/vfs/hpfs/hpfs_vnops.c
sys/vfs/isofs/cd9660/cd9660_lookup.c
sys/vfs/isofs/cd9660/cd9660_vfsops.c
sys/vfs/isofs/cd9660/cd9660_vnops.c
sys/vfs/mfs/mfs_vnops.c
sys/vfs/msdosfs/msdosfs_lookup.c
sys/vfs/msdosfs/msdosfs_vfsops.c
sys/vfs/msdosfs/msdosfs_vnops.c
sys/vfs/nfs/nfs_node.c
sys/vfs/nfs/nfs_serv.c
sys/vfs/nfs/nfs_subs.c
sys/vfs/nfs/nfs_vfsops.c
sys/vfs/nfs/nfs_vnops.c
sys/vfs/ntfs/ntfs.h
sys/vfs/ntfs/ntfs_vfsops.c
sys/vfs/ntfs/ntfs_vnops.c
sys/vfs/nullfs/null_vfsops.c
sys/vfs/nwfs/nwfs_vfsops.c
sys/vfs/nwfs/nwfs_vnops.c
sys/vfs/portal/portal_vnops.c
sys/vfs/procfs/procfs_vnops.c
sys/vfs/smbfs/smbfs_vfsops.c
sys/vfs/smbfs/smbfs_vnops.c
sys/vfs/specfs/spec_vnops.c
sys/vfs/udf/udf_vfsops.c
sys/vfs/udf/udf_vnops.c
sys/vfs/ufs/ffs_balloc.c
sys/vfs/ufs/ffs_rawread.c
sys/vfs/ufs/ffs_softdep.c
sys/vfs/ufs/ffs_vfsops.c
sys/vfs/ufs/ufs_lookup.c
sys/vfs/ufs/ufs_quota.c
sys/vfs/ufs/ufs_vnops.c
sys/vfs/union/union_subr.c
sys/vfs/union/union_vfsops.c
sys/vfs/union/union_vnops.c
sys/vm/vm_contig.c
sys/vm/vm_map.c
sys/vm/vm_pageout.c
sys/vm/vm_swap.c

index 3f6f1fd..860ba3a 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/dev/ccd/ccd.c,v 1.73.2.1 2001/09/11 09:49:52 kris Exp $ */
-/* $DragonFly: src/sys/dev/disk/ccd/ccd.c,v 1.33 2006/07/28 02:17:35 dillon Exp $ */
+/* $DragonFly: src/sys/dev/disk/ccd/ccd.c,v 1.34 2006/08/12 00:26:17 dillon Exp $ */
 
 /*     $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */
 
@@ -1588,7 +1588,7 @@ ccdlookup(char *path, struct vnode **vpp)
                vprint("ccdlookup: vnode info", vp);
 #endif
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        nd.nl_open_vp = NULL;
        nlookup_done(&nd);
        *vpp = vp;                              /* leave ref intact  */
index 6751381..e15d996 100644 (file)
@@ -39,7 +39,7 @@
  *
  *     from: @(#)vn.c  8.6 (Berkeley) 4/1/94
  * $FreeBSD: src/sys/dev/vn/vn.c,v 1.105.2.4 2001/11/18 07:11:00 dillon Exp $
- * $DragonFly: src/sys/dev/disk/vn/vn.c,v 1.25 2006/07/28 02:17:35 dillon Exp $
+ * $DragonFly: src/sys/dev/disk/vn/vn.c,v 1.26 2006/08/12 00:26:18 dillon Exp $
  */
 
 /*
@@ -386,7 +386,7 @@ vnstrategy(struct dev_strategy_args *ap)
                        error = VOP_READ(vn->sc_vp, &auio, IO_DIRECT, vn->sc_cred);
                else
                        error = VOP_WRITE(vn->sc_vp, &auio, IO_NOWDRAIN, vn->sc_cred);
-               VOP_UNLOCK(vn->sc_vp, 0);
+               vn_unlock(vn->sc_vp);
                bp->b_resid = auio.uio_resid;
                if (error) {
                        bp->b_error = error;
@@ -569,7 +569,7 @@ vniocattach_file(struct vn_softc *vn, struct vn_ioctl *vio, dev_t dev,
                        error = EINVAL;
                goto done;
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        vn->sc_secsize = DEV_BSIZE;
        vn->sc_vp = vp;
        nd.nl_open_vp = NULL;
@@ -721,7 +721,7 @@ vnsetcred(struct vn_softc *vn, struct ucred *cred)
                auio.uio_resid = aiov.iov_len;
                vn_lock(vn->sc_vp, LK_EXCLUSIVE | LK_RETRY);
                error = VOP_READ(vn->sc_vp, &auio, 0, vn->sc_cred);
-               VOP_UNLOCK(vn->sc_vp, 0);
+               vn_unlock(vn->sc_vp);
                free(tmpbuf, M_TEMP);
        }
        return (error);
index 40f5235..e87b5e5 100644 (file)
@@ -39,7 +39,7 @@
  *     @(#)procfs_vnops.c      8.18 (Berkeley) 5/21/95
  *
  * $FreeBSD: src/sys/i386/linux/linprocfs/linprocfs_vnops.c,v 1.3.2.5 2001/08/12 14:29:19 rwatson Exp $
- * $DragonFly: src/sys/emulation/linux/i386/linprocfs/linprocfs_vnops.c,v 1.32 2006/07/18 22:22:11 dillon Exp $
+ * $DragonFly: src/sys/emulation/linux/i386/linprocfs/linprocfs_vnops.c,v 1.33 2006/08/12 00:26:19 dillon Exp $
  */
 
 /*
@@ -752,7 +752,7 @@ out:
        if (error == 0) {
                if (*vpp != dvp && (cnp->cn_flags & CNP_LOCKPARENT) == 0) {
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                }
        }
        return (error);
index 3ad754e..48fc759 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/linux/linux_file.c,v 1.41.2.6 2003/01/06 09:19:43 fjoe Exp $
- * $DragonFly: src/sys/emulation/linux/linux_file.c,v 1.33 2006/06/13 08:12:03 dillon Exp $
+ * $DragonFly: src/sys/emulation/linux/linux_file.c,v 1.34 2006/08/12 00:26:19 dillon Exp $
  */
 
 #include "opt_compat.h"
@@ -435,7 +435,7 @@ out:
        if (cookies)
                free(cookies, M_TEMP);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        free(buf, M_TEMP);
 done:
        fdrop(fp);
index 8aba969..39a34b1 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.85.2.9 2002/09/24 08:11:41 mdodd Exp $
- * $DragonFly: src/sys/emulation/linux/linux_misc.c,v 1.28 2006/06/05 07:26:09 dillon Exp $
+ * $DragonFly: src/sys/emulation/linux/linux_misc.c,v 1.29 2006/08/12 00:26:19 dillon Exp $
  */
 
 #include "opt_compat.h"
@@ -308,7 +308,7 @@ sys_linux_uselib(struct linux_uselib_args *args)
        /*
         * Lock no longer needed
         */
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        locked = 0;
 
        /* Pull in executable header into kernel_map */
@@ -447,7 +447,7 @@ cleanup:
        /* Unlock/release vnode */
        if (vp) {
                if (locked)
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                vrele(vp);
        }
        /* Release the kernel mapping. */
index 65ccfa8..19a1427 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.62 2004/07/11 00:19:30 wpaul Exp $
- * $DragonFly: src/sys/emulation/ndis/subr_ndis.c,v 1.13 2006/05/06 02:43:11 dillon Exp $
+ * $DragonFly: src/sys/emulation/ndis/subr_ndis.c,v 1.14 2006/08/12 00:26:19 dillon Exp $
  */
 
 /*
@@ -2314,7 +2314,7 @@ ndis_open_file(ndis_status *status, ndis_handle *filehandle, uint32_t *filelengt
 
        /* Get the file size. */
        VOP_GETATTR(vp, vap);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
 
        fh->nf_vp = vp;
        fh->nf_map = NULL;
index c74fda4..02d65c6 100644 (file)
@@ -27,7 +27,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/imgact_elf.c,v 1.73.2.13 2002/12/28 19:49:41 dillon Exp $
- * $DragonFly: src/sys/kern/imgact_elf.c,v 1.39 2006/05/25 04:17:09 dillon Exp $
+ * $DragonFly: src/sys/kern/imgact_elf.c,v 1.40 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -441,7 +441,7 @@ elf_load_file(struct proc *p, const char *file, u_long *addr, u_long *entry)
         */
        error = exec_check_permissions(imgp);
        if (error) {
-               VOP_UNLOCK(imgp->vp, 0);
+               vn_unlock(imgp->vp);
                goto fail;
        }
 
@@ -452,7 +452,7 @@ elf_load_file(struct proc *p, const char *file, u_long *addr, u_long *entry)
         */
        if (error == 0)
                imgp->vp->v_flag |= VTEXT;
-       VOP_UNLOCK(imgp->vp, 0);
+       vn_unlock(imgp->vp);
        if (error)
                 goto fail;
 
@@ -930,7 +930,7 @@ elf_coredump(struct proc *p, struct vnode *vp, off_t limit)
        fp->f_flag = O_CREAT|O_WRONLY|O_NOFOLLOW;
        fp->f_ops = &vnode_fileops;
        fp->f_data = vp;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        
        error = generic_elf_coredump(p, fp, limit);
 
index fbb6486..b8c5b10 100644 (file)
@@ -40,7 +40,7 @@
  *
  *     @(#)init_main.c 8.9 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/kern/init_main.c,v 1.134.2.8 2003/06/06 20:21:32 tegge Exp $
- * $DragonFly: src/sys/kern/init_main.c,v 1.58 2006/06/07 03:02:10 dillon Exp $
+ * $DragonFly: src/sys/kern/init_main.c,v 1.59 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_init_path.h"
@@ -461,7 +461,7 @@ start_init(void *dummy)
        p->p_fd->fd_rdir = vp;
        vref(p->p_fd->fd_rdir);
        vfs_cache_setroot(vp, cache_hold(mp->mnt_ncp));
-       VOP_UNLOCK(vp, 0);                      /* leave ref intact */
+       vn_unlock(vp);                  /* leave ref intact */
        p->p_fd->fd_ncdir = cache_hold(mp->mnt_ncp);
        p->p_fd->fd_nrdir = cache_hold(mp->mnt_ncp);
 
index 40b0bdf..b72c374 100644 (file)
@@ -38,7 +38,7 @@
  *
  *     @(#)kern_acct.c 8.1 (Berkeley) 6/14/93
  * $FreeBSD: src/sys/kern/kern_acct.c,v 1.23.2.1 2002/07/24 18:33:55 johan Exp $
- * $DragonFly: src/sys/kern/kern_acct.c,v 1.25 2006/06/05 07:26:10 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_acct.c,v 1.26 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -150,7 +150,7 @@ sys_acct(struct acct_args *uap)
                nd.nl_open_vp = NULL;
                nlookup_done(&nd);
 
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        } else {
                vp = NULL;
        }
index 5700c3e..e2843e0 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/kern_acl.c,v 1.2.2.1 2000/07/28 18:48:16 rwatson Exp $
- * $DragonFly: src/sys/kern/kern_acl.c,v 1.14 2006/06/05 07:26:10 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_acl.c,v 1.15 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -81,7 +81,7 @@ vacl_set_acl(struct vnode *vp, acl_type_t type, struct acl *aclp)
 
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_SETACL(vp, type, &inkernacl, ucred);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        return(error);
 }
 
@@ -118,7 +118,7 @@ vacl_delete(struct vnode *vp, acl_type_t type)
        ucred = td->td_proc->p_ucred;
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_SETACL(vp, ACL_TYPE_DEFAULT, 0, ucred);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        return (error);
 }
 
index f33fa9d..abe5105 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/kern_exec.c,v 1.107.2.15 2002/07/30 15:40:46 nectar Exp $
- * $DragonFly: src/sys/kern/kern_exec.c,v 1.40 2006/06/05 07:26:10 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_exec.c,v 1.41 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -207,12 +207,12 @@ interpret:
         */
        error = exec_check_permissions(imgp);
        if (error) {
-               VOP_UNLOCK(imgp->vp, 0);
+               vn_unlock(imgp->vp);
                goto exec_fail_dealloc;
        }
 
        error = exec_map_first_page(imgp);
-       VOP_UNLOCK(imgp->vp, 0);
+       vn_unlock(imgp->vp);
        if (error)
                goto exec_fail_dealloc;
 
index bdd21c8..a0b5c12 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)kern_ktrace.c       8.2 (Berkeley) 9/23/93
  * $FreeBSD: src/sys/kern/kern_ktrace.c,v 1.35.2.6 2002/07/05 22:36:38 darrenr Exp $
- * $DragonFly: src/sys/kern/kern_ktrace.c,v 1.27 2006/06/05 07:26:10 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_ktrace.c,v 1.28 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_ktrace.h"
@@ -259,7 +259,7 @@ sys_ktrace(struct ktrace_args *uap)
                tracenode->kn_refs = 1;
                nd.nl_open_vp = NULL;
                nlookup_done(&nd);
-               VOP_UNLOCK(tracenode->kn_vp, 0);
+               vn_unlock(tracenode->kn_vp);
        }
        /*
         * Clear all uses of the tracefile.  Not the most efficient operation
@@ -524,7 +524,7 @@ ktrwrite(struct proc *p, struct ktr_header *kth, struct uio *uio)
                error = VOP_WRITE(tracenode->kn_vp, uio,
                                  IO_UNIT | IO_APPEND, p->p_ucred);
        }
-       VOP_UNLOCK(tracenode->kn_vp, 0);
+       vn_unlock(tracenode->kn_vp);
        if (error) {
                /*
                 * If an error occured, give up tracing on all processes
index 9abf43b..8b33f9c 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)kern_sig.c  8.7 (Berkeley) 4/18/94
  * $FreeBSD: src/sys/kern/kern_sig.c,v 1.72.2.17 2003/05/16 16:34:34 obrien Exp $
- * $DragonFly: src/sys/kern/kern_sig.c,v 1.50 2006/06/05 07:26:10 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_sig.c,v 1.51 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_ktrace.h"
@@ -1685,7 +1685,7 @@ coredump(struct proc *p)
        nd.nl_open_vp = NULL;
        nlookup_done(&nd);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        lf.l_whence = SEEK_SET;
        lf.l_start = 0;
        lf.l_len = 0;
@@ -1706,7 +1706,7 @@ coredump(struct proc *p)
        vattr.va_size = 0;
        VOP_SETATTR(vp, &vattr, cred);
        p->p_acflag |= ACORE;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
 
        error = p->p_sysent->sv_coredump ?
                  p->p_sysent->sv_coredump(p, vp, limit) : ENOSYS;
index 468b3c6..a29816b 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/link_aout.c,v 1.26 1999/12/24 15:33:36 bde Exp $
- * $DragonFly: src/sys/kern/link_aout.c,v 1.17 2006/05/06 02:43:12 dillon Exp $
+ * $DragonFly: src/sys/kern/link_aout.c,v 1.18 2006/08/12 00:26:20 dillon Exp $
  */
 
 #define FREEBSD_AOUT   1
@@ -289,7 +289,7 @@ link_aout_load_file(const char* filename, linker_file_t* result)
     *result = lf;
 
 out:
-    VOP_UNLOCK(vp, 0);
+    vn_unlock(vp);
     vn_close(vp, FREAD);
 
     return error;
index 21cd06d..3c32bc3 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/link_elf.c,v 1.24 1999/12/24 15:33:36 bde Exp $
- * $DragonFly: src/sys/kern/link_elf.c,v 1.19 2006/05/06 02:43:12 dillon Exp $
+ * $DragonFly: src/sys/kern/link_elf.c,v 1.20 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -695,7 +695,7 @@ out:
        free(shdr, M_LINKER);
     if (firstpage)
        free(firstpage, M_LINKER);
-    VOP_UNLOCK(vp, 0);
+    vn_unlock(vp);
     vn_close(vp, FREAD);
 
     return error;
index 8749d95..4be0453 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)tty.c       8.8 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/kern/tty.c,v 1.129.2.5 2002/03/11 01:32:31 dd Exp $
- * $DragonFly: src/sys/kern/tty.c,v 1.25 2006/07/28 02:17:40 dillon Exp $
+ * $DragonFly: src/sys/kern/tty.c,v 1.26 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*-
@@ -311,7 +311,7 @@ ttyclosesession(struct session *sp, int dorele)
                if (vn_lock(vp, LK_EXCLUSIVE|LK_RETRY) == 0) {
                        vclrflags(vp, VCTTYISOPEN);
                        VOP_CLOSE(vp, FREAD|FWRITE);
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                }
        }
        if (dorele)
index 1e1cbc3..1d3b338 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)tty_tty.c   8.2 (Berkeley) 9/23/93
  * $FreeBSD: src/sys/kern/tty_tty.c,v 1.30 1999/09/25 18:24:24 phk Exp $
- * $DragonFly: src/sys/kern/tty_tty.c,v 1.16 2006/07/28 02:17:40 dillon Exp $
+ * $DragonFly: src/sys/kern/tty_tty.c,v 1.17 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -94,7 +94,7 @@ cttyopen(struct dev_open_args *ap)
                        error = VOP_OPEN(ttyvp, FREAD|FWRITE, ap->a_cred, NULL);
                        if (error)
                                vclrflags(ttyvp, VCTTYISOPEN);
-                       VOP_UNLOCK(ttyvp, 0);
+                       vn_unlock(ttyvp);
                }
        } else {
                error = ENXIO;
@@ -128,7 +128,7 @@ cttyclose(struct dev_close_args *ap)
                error = vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY);
                if (error == 0) {
                        error = VOP_CLOSE(ttyvp, FREAD|FWRITE);
-                       VOP_UNLOCK(ttyvp, 0);
+                       vn_unlock(ttyvp);
                }
        } else {
                error = 0;
@@ -140,7 +140,7 @@ cttyclose(struct dev_close_args *ap)
  * Read from the controlling terminal (/dev/tty).  The tty is refed as
  * of the cttyvp(), but the ref can get ripped out from under us if
  * the controlling terminal is revoked while we are blocked on the lock,
- * so use vget() instead of VOP_LOCK.
+ * so use vget() instead of vn_lock().
  */
 static int
 cttyread(struct dev_read_args *ap)
@@ -164,7 +164,7 @@ cttyread(struct dev_read_args *ap)
  * Read from the controlling terminal (/dev/tty).  The tty is refed as
  * of the cttyvp(), but the ref can get ripped out from under us if
  * the controlling terminal is revoked while we are blocked on the lock,
- * so use vget() instead of VOP_LOCK.
+ * so use vget() instead of vn_lock().
  */
 static int
 cttywrite(struct dev_write_args *ap)
index 9d7791d..25dc0ad 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)uipc_syscalls.c     8.4 (Berkeley) 2/21/94
  * $FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.65.2.17 2003/04/04 17:11:16 tegge Exp $
- * $DragonFly: src/sys/kern/uipc_syscalls.c,v 1.72 2006/08/08 03:52:40 dillon Exp $
+ * $DragonFly: src/sys/kern/uipc_syscalls.c,v 1.73 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_ktrace.h"
@@ -1616,7 +1616,7 @@ retry_lookup:
                        error = VOP_READ(vp, &auio, 
                                    IO_VMIO | ((MAXBSIZE / bsize) << 16),
                                    p->p_ucred);
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        vm_page_flag_clear(pg, PG_ZERO);
                        vm_page_io_finish(pg);
                        if (error) {
index 37ac68c..32f08a5 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     From: @(#)uipc_usrreq.c 8.3 (Berkeley) 1/4/94
  * $FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.54.2.10 2003/03/04 17:28:09 nectar Exp $
- * $DragonFly: src/sys/kern/uipc_usrreq.c,v 1.26 2006/05/26 02:26:01 dillon Exp $
+ * $DragonFly: src/sys/kern/uipc_usrreq.c,v 1.27 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -619,7 +619,7 @@ unp_bind(struct unpcb *unp, struct sockaddr *nam, struct thread *td)
                vp->v_socket = unp->unp_socket;
                unp->unp_vnode = vp;
                unp->unp_addr = (struct sockaddr_un *)dup_sockaddr(nam);
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        }
 done:
        nlookup_done(&nd);
index 1f99f1c..8fbf6bc 100644 (file)
@@ -67,7 +67,7 @@
  *
  *     @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95
  * $FreeBSD: src/sys/kern/vfs_cache.c,v 1.42.2.6 2001/10/05 20:07:03 dillon Exp $
- * $DragonFly: src/sys/kern/vfs_cache.c,v 1.73 2006/08/09 22:47:32 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_cache.c,v 1.74 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -1091,7 +1091,7 @@ force:
                        printf("lookupdotdot failed %d dvp %p\n", error, dvp);
                        break;
                }
-               VOP_UNLOCK(pvp, 0);
+               vn_unlock(pvp);
 
                /*
                 * Reuse makeit as a recursion depth counter.
@@ -1153,7 +1153,7 @@ cache_fromdvp_try(struct vnode *dvp, struct ucred *cred,
                        vrele(dvp);
                        return (error);
                }
-               VOP_UNLOCK(pvp, 0);
+               vn_unlock(pvp);
                if ((ncp = TAILQ_FIRST(&pvp->v_namecache)) != NULL) {
                        cache_hold(ncp);
                        vrele(pvp);
@@ -1283,7 +1283,7 @@ again:
                                }
                                nlc.nlc_nameptr = den->d_name;
                                nlc.nlc_namelen = den->d_namlen;
-                               VOP_UNLOCK(pvp, 0);
+                               vn_unlock(pvp);
                                rncp = cache_nlookup(ncp, &nlc);
                                KKASSERT(rncp != NULL);
                                break;
index c7cb029..d0161f6 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * $FreeBSD: src/sys/kern/vfs_default.c,v 1.28.2.7 2003/01/10 18:23:26 bde Exp $
- * $DragonFly: src/sys/kern/vfs_default.c,v 1.42 2006/07/19 06:08:06 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_default.c,v 1.43 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -79,8 +79,6 @@ struct vop_ops default_vnode_vops = {
        .vop_advlock            = (void *)vop_einval,
        .vop_fsync              = (void *)vop_null,
        .vop_ioctl              = (void *)vop_enotty,
-       .vop_islocked           = vop_stdislocked,
-       .vop_lock               = vop_stdlock,
        .vop_mmap               = (void *)vop_einval,
        .vop_old_lookup         = vop_nolookup,
        .vop_open               = vop_stdopen,
@@ -91,7 +89,6 @@ struct vop_ops default_vnode_vops = {
        .vop_reallocblks        = (void *)vop_eopnotsupp,
        .vop_revoke             = vop_stdrevoke,
        .vop_strategy           = vop_nostrategy,
-       .vop_unlock             = vop_stdunlock,
        .vop_getacl             = (void *)vop_eopnotsupp,
        .vop_setacl             = (void *)vop_eopnotsupp,
        .vop_aclcheck           = (void *)vop_eopnotsupp,
@@ -222,9 +219,9 @@ vop_compat_nresolve(struct vop_nresolve_args *ap)
         */
        error = vop_old_lookup(ap->a_head.a_ops, dvp, &vp, &cnp);
        if (error == 0)
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        if ((ncp->nc_flag & NCF_UNRESOLVED) == 0) {
                /* was resolved by another process while we were unlocked */
                if (error == 0)
@@ -294,7 +291,7 @@ vop_compat_nlookupdotdot(struct vop_nlookupdotdot_args *ap)
         */
        error = vop_old_lookup(ap->a_head.a_ops, ap->a_dvp, ap->a_vpp, &cnp);
        if (error == 0)
-               VOP_UNLOCK(*ap->a_vpp, 0);
+               vn_unlock(*ap->a_vpp);
        if (cnp.cn_flags & CNP_PDIRUNLOCK)
                vrele(ap->a_dvp);
        else
@@ -379,7 +376,7 @@ vop_compat_ncreate(struct vop_ncreate_args *ap)
                KKASSERT(*ap->a_vpp == NULL);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -461,7 +458,7 @@ vop_compat_nmkdir(struct vop_nmkdir_args *ap)
                KKASSERT(*ap->a_vpp == NULL);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -543,7 +540,7 @@ vop_compat_nmknod(struct vop_nmknod_args *ap)
                KKASSERT(*ap->a_vpp == NULL);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -622,7 +619,7 @@ vop_compat_nlink(struct vop_nlink_args *ap)
                }
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -697,7 +694,7 @@ vop_compat_nsymlink(struct vop_nsymlink_args *ap)
                KKASSERT(vp == NULL);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -792,7 +789,7 @@ vop_compat_nwhiteout(struct vop_nwhiteout_args *ap)
                break;
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -867,7 +864,7 @@ vop_compat_nremove(struct vop_nremove_args *ap)
                        vput(vp);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -950,7 +947,7 @@ vop_compat_nrmdir(struct vop_nrmdir_args *ap)
                        vput(vp);
        }
        if ((cnp.cn_flags & CNP_PDIRUNLOCK) == 0)
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        vrele(dvp);
        return (error);
 }
@@ -1024,13 +1021,13 @@ vop_compat_nrename(struct vop_nrename_args *ap)
        }
        if ((fcnp.cn_flags & CNP_PDIRUNLOCK) == 0) {
                fcnp.cn_flags |= CNP_PDIRUNLOCK;
-               VOP_UNLOCK(fdvp, 0);
+               vn_unlock(fdvp);
        }
        if (error) {
                vrele(fdvp);
                return (error);
        }
-       VOP_UNLOCK(fvp, 0);
+       vn_unlock(fvp);
 
        /*
         * fdvp and fvp are now referenced and unlocked.
@@ -1237,51 +1234,6 @@ vop_stdclose(struct vop_close_args *ap)
        return (0);
 }
 
-/*
- * Standard lock.  The lock is recursive-capable only if the lock was
- * initialized with LK_CANRECURSE or that flag is passed in a_flags.
- */
-int
-vop_stdlock(ap)
-       struct vop_lock_args /* {
-               struct vnode *a_vp;
-               int a_flags;
-       } */ *ap;
-{               
-       int error;
-
-#ifndef        DEBUG_LOCKS
-       error = lockmgr(&ap->a_vp->v_lock, ap->a_flags);
-#else
-       error = debuglockmgr(&ap->a_vp->v_lock, ap->a_flags,
-                       "vop_stdlock", ap->a_vp->filename, ap->a_vp->line);
-#endif
-       return(error);
-}
-
-int
-vop_stdunlock(ap)
-       struct vop_unlock_args /* {
-               struct vnode *a_vp;
-               int a_flags;
-       } */ *ap;
-{
-       int error;
-
-       error = lockmgr(&ap->a_vp->v_lock, ap->a_flags | LK_RELEASE);
-       return(error);
-}
-
-int
-vop_stdislocked(ap)
-       struct vop_islocked_args /* {
-               struct vnode *a_vp;
-               struct thread *a_td;
-       } */ *ap;
-{
-       return (lockstatus(&ap->a_vp->v_lock, ap->a_td));
-}
-
 /*
  * Return true for select/poll.
  */
index 6bc7b35..4086523 100644 (file)
@@ -31,7 +31,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $DragonFly: src/sys/kern/vfs_lock.c,v 1.21 2006/08/11 01:54:59 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_lock.c,v 1.22 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -334,7 +334,7 @@ vget(struct vnode *vp, int flags)
                if ((error = vn_lock(vp, flags)) != 0) {
                        vrele(vp);
                } else if (vp->v_flag & VRECLAIMED) {
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        vrele(vp);
                        error = ENOENT;
                } else {
@@ -351,7 +351,7 @@ vget(struct vnode *vp, int flags)
 void
 vput(struct vnode *vp)
 {
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        vrele(vp);
 }
 
index d9df74a..ca49a8e 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_lookup.c        8.4 (Berkeley) 2/16/94
  * $FreeBSD: src/sys/kern/vfs_lookup.c,v 1.38.2.3 2001/08/31 19:36:49 dillon Exp $
- * $DragonFly: src/sys/kern/vfs_lookup.c,v 1.22 2006/05/05 21:15:09 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_lookup.c,v 1.23 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_ktrace.h"
@@ -151,7 +151,7 @@ relookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp)
 bad:
        if ((cnp->cn_flags & CNP_PDIRUNLOCK) == 0) {
                cnp->cn_flags |= CNP_PDIRUNLOCK;
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
        }
        if (*vpp) {
                vput(*vpp);
index f51f8d8..345492c 100644 (file)
@@ -31,7 +31,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  * 
- * $DragonFly: src/sys/kern/vfs_nlookup.c,v 1.17 2006/06/01 06:10:50 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_nlookup.c,v 1.18 2006/08/12 00:26:20 dillon Exp $
  */
 /*
  * nlookup() is the 'new' namei interface.  Rather then return directory and
@@ -224,7 +224,7 @@ nlookup_done(struct nlookupdata *nd)
     }
     if (nd->nl_open_vp) {
        if (nd->nl_flags & NLC_LOCKVP) {
-               VOP_UNLOCK(nd->nl_open_vp, 0);
+               vn_unlock(nd->nl_open_vp);
                nd->nl_flags &= ~NLC_LOCKVP;
        }
        vn_close(nd->nl_open_vp, nd->nl_vp_fmode);
index 0740d2d..2a19d08 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_subr.c  8.31 (Berkeley) 5/26/95
  * $FreeBSD: src/sys/kern/vfs_subr.c,v 1.249.2.30 2003/04/04 20:35:57 tegge Exp $
- * $DragonFly: src/sys/kern/vfs_subr.c,v 1.93 2006/08/11 01:54:59 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_subr.c,v 1.94 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -1367,7 +1367,7 @@ retry:
                vp->v_usecount--;
        } else {
                if (object->flags & OBJ_DEAD) {
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        tsleep(object, 0, "vodead", 0);
                        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
                        goto retry;
@@ -1440,7 +1440,7 @@ db_show_locked_vnodes(struct mount *mp, void *data __unused)
        struct vnode *vp;
 
        TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) {
-               if (VOP_ISLOCKED(vp, NULL))
+               if (vn_islocked(vp))
                        vprint((char *)0, vp);
        }
        return(0);
@@ -1875,7 +1875,7 @@ vfs_msync_scan1(struct mount *mp, struct vnode *vp, void *data)
                        return(0);      /* call scan2 */
                if ((mp->mnt_flag & MNT_RDONLY) == 0 &&
                    (vp->v_flag & VOBJDIRTY) &&
-                   (flags == MNT_WAIT || VOP_ISLOCKED(vp, NULL) == 0)) {
+                   (flags == MNT_WAIT || vn_islocked(vp) == 0)) {
                        return(0);      /* call scan2 */
                }
        }
@@ -2043,28 +2043,6 @@ vn_isdisk(struct vnode *vp, int *errp)
        return (1);
 }
 
-#ifdef DEBUG_VFS_LOCKS
-
-void
-assert_vop_locked(struct vnode *vp, const char *str)
-{
-       if (vp && !VOP_ISLOCKED(vp, NULL)) {
-               panic("%s: %p is not locked shared but should be", str, vp);
-       }
-}
-
-void
-assert_vop_unlocked(struct vnode *vp, const char *str)
-{
-       if (vp) {
-               if (VOP_ISLOCKED(vp, curthread) == LK_EXCLUSIVE) {
-                       panic("%s: %p is locked but should not be", str, vp);
-               }
-       }
-}
-
-#endif
-
 int
 vn_get_namelen(struct vnode *vp, int *namelen)
 {
index a637a5d..18bb9cc 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_subr.c  8.31 (Berkeley) 5/26/95
  * $FreeBSD: src/sys/kern/vfs_subr.c,v 1.249.2.30 2003/04/04 20:35:57 tegge Exp $
- * $DragonFly: src/sys/kern/vfs_sync.c,v 1.12 2006/07/28 02:17:40 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_sync.c,v 1.13 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -308,10 +308,7 @@ static struct vop_ops sync_vnode_vops = {
        .vop_fsync =    sync_fsync,
        .vop_inactive = sync_inactive,
        .vop_reclaim =  sync_reclaim,
-       .vop_lock =     vop_stdlock,
-       .vop_unlock =   vop_stdunlock,
        .vop_print =    sync_print,
-       .vop_islocked = vop_stdislocked
 };
 
 static struct vop_ops *sync_vnode_vops_p = &sync_vnode_vops;
index 70bf630..9b86e84 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_syscalls.c      8.13 (Berkeley) 4/15/94
  * $FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.151.2.18 2003/04/04 20:35:58 tegge Exp $
- * $DragonFly: src/sys/kern/vfs_syscalls.c,v 1.99 2006/08/11 01:54:59 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_syscalls.c,v 1.100 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -216,7 +216,7 @@ sys_mount(struct mount_args *uap)
                vp->v_flag |= VMOUNT;
                mp->mnt_flag |=
                    uap->flags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE);
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
                goto update;
        }
        /*
@@ -306,7 +306,7 @@ sys_mount(struct mount_args *uap)
        mp->mnt_vnodecovered = vp;
        mp->mnt_stat.f_owner = cred->cr_uid;
        mp->mnt_iosize_max = DFLTPHYS;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
 update:
        /*
         * Set the mount level flags.
@@ -370,7 +370,7 @@ update:
                mountlist_insert(mp, MNTINS_LAST);
                checkdirs(vp, mp->mnt_ncp);
                cache_unlock(mp->mnt_ncp);      /* leave ref intact */
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
                error = vfs_allocate_syncvnode(mp);
                vfs_unbusy(mp);
                if ((error = VFS_START(mp, 0)) != 0)
@@ -1114,7 +1114,7 @@ sys_fchdir(struct fchdir_args *uap)
        if (error == 0) {
                ovp = fdp->fd_cdir;
                oncp = fdp->fd_ncdir;
-               VOP_UNLOCK(vp, 0);      /* leave ref intact */
+               vn_unlock(vp);          /* leave ref intact */
                fdp->fd_cdir = vp;
                fdp->fd_ncdir = ncp;
                cache_drop(oncp);
@@ -1145,7 +1145,7 @@ kern_chdir(struct nlookupdata *nd)
                return (error);
 
        error = checkvp_chdir(vp, td);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (error == 0) {
                ovp = fdp->fd_cdir;
                oncp = fdp->fd_ncdir;
@@ -1258,7 +1258,7 @@ kern_chroot(struct namecache *ncp)
         * associate it with rdir/jdir.
         */
        error = checkvp_chdir(vp, td);
-       VOP_UNLOCK(vp, 0);      /* leave reference intact */
+       vn_unlock(vp);                  /* leave reference intact */
        if (error == 0) {
                vrele(fdp->fd_rdir);
                fdp->fd_rdir = vp;      /* reference inherited by fd_rdir */
@@ -2613,7 +2613,7 @@ kern_ftruncate(int fd, off_t length)
                vattr.va_size = length;
                error = VOP_SETATTR(vp, &vattr, fp->f_cred);
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
 done:
        fdrop(fp);
        return (error);
@@ -2661,7 +2661,7 @@ sys_fsync(struct fsync_args *uap)
            bioops.io_fsync) {
                error = (*bioops.io_fsync)(vp);
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        fdrop(fp);
        return (error);
 }
@@ -2956,7 +2956,7 @@ unionread:
        loff = auio.uio_offset = fp->f_offset;
        error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag, NULL, NULL);
        fp->f_offset = auio.uio_offset;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (error)
                goto done;
        if (count == auio.uio_resid) {
@@ -3206,7 +3206,7 @@ sys_fhopen(struct fhopen_args *uap)
                        goto bad;
        }
        if (fmode & O_TRUNC) {
-               VOP_UNLOCK(vp, 0);                      /* XXX */
+               vn_unlock(vp);                          /* XXX */
                vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);   /* XXX */
                VATTR_NULL(vap);
                vap->va_size = 0;
@@ -3263,7 +3263,7 @@ sys_fhopen(struct fhopen_args *uap)
                        type = 0;
                else
                        type = F_WAIT;
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
                if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, type)) != 0) {
                        /*
                         * release our private reference.
index 4145d0a..be87acc 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/kern/vfs_vnops.c,v 1.87.2.13 2002/12/29 18:19:53 dillon Exp $
- * $DragonFly: src/sys/kern/vfs_vnops.c,v 1.43 2006/08/08 03:52:40 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_vnops.c,v 1.44 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -185,7 +185,6 @@ again:
                        if (error)
                                return (error);
                        fmode &= ~O_TRUNC;
-                       ASSERT_VOP_LOCKED(vp, "create");
                        /* locked vnode is returned */
                } else {
                        if (fmode & O_EXCL) {
@@ -263,7 +262,7 @@ again:
                }
        }
        if (fmode & O_TRUNC) {
-               VOP_UNLOCK(vp, 0);                      /* XXX */
+               vn_unlock(vp);                          /* XXX */
                vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);   /* XXX */
                VATTR_NULL(vap);
                vap->va_size = 0;
@@ -326,7 +325,7 @@ again:
                nd->nl_open_vp = vp;
                nd->nl_vp_fmode = fmode;
                if ((nd->nl_flags & NLC_LOCKVP) == 0)
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
        } else {
                vput(vp);
        }
@@ -366,7 +365,7 @@ vn_close(struct vnode *vp, int flags)
 
        if ((error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY)) == 0) {
                error = VOP_CLOSE(vp, flags);
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        }
        vrele(vp);
        return (error);
@@ -439,7 +438,7 @@ vn_rdwr(enum uio_rw rw, struct vnode *vp, caddr_t base, int len,
                if (auio.uio_resid && error == 0)
                        error = EIO;
        if ((ioflg & IO_NODELOCKED) == 0)
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        return (error);
 }
 
@@ -526,7 +525,7 @@ vn_read(struct file *fp, struct uio *uio, struct ucred *cred, int flags)
        if ((flags & O_FOFFSET) == 0)
                fp->f_offset = uio->uio_offset;
        fp->f_nextoff = uio->uio_offset;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        rel_mplock();
        return (error);
 }
@@ -653,7 +652,7 @@ vn_write(struct file *fp, struct uio *uio, struct ucred *cred, int flags)
        if ((flags & O_FOFFSET) == 0)
                fp->f_offset = uio->uio_offset;
        fp->f_nextoff = uio->uio_offset;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        rel_mplock();
        return (error);
 }
@@ -992,8 +991,11 @@ debug_vn_lock(struct vnode *vp, int flags, const char *filename, int line)
 #ifdef DEBUG_LOCKS
                vp->filename = filename;
                vp->line = line;
+               error = debuglockmgr(&vp->v_lock, flags,
+                                    "vn_lock", filename, line);
+#else
+               error = lockmgr(&vp->v_lock, flags);
 #endif
-               error = VOP_LOCK(vp, flags);
                if (error == 0)
                        break;
        } while (flags & LK_RETRY);
@@ -1004,12 +1006,24 @@ debug_vn_lock(struct vnode *vp, int flags, const char *filename, int line)
         * refs go away.  So we can just check the flag.
         */
        if (error == 0 && (vp->v_flag & VRECLAIMED)) {
-               VOP_UNLOCK(vp, 0);
+               lockmgr(&vp->v_lock, LK_RELEASE);
                error = ENOENT;
        }
        return (error);
 }
 
+void
+vn_unlock(struct vnode *vp)
+{
+       lockmgr(&vp->v_lock, LK_RELEASE);
+}
+
+int
+vn_islocked(struct vnode *vp)
+{
+       return (lockstatus(&vp->v_lock, curthread));
+}
+
 /*
  * MPALMOSTSAFE - acquires mplock
  */
index 88effa3..f7912fb 100644 (file)
@@ -32,7 +32,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  * 
- * $DragonFly: src/sys/kern/vfs_vopops.c,v 1.31 2006/07/28 02:17:40 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_vopops.c,v 1.32 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -83,7 +83,6 @@
                #name }
 
 VNODEOP_DESC_INIT(default);
-VNODEOP_DESC_INIT(islocked);
 VNODEOP_DESC_INIT(old_lookup);
 VNODEOP_DESC_INIT(old_create);
 VNODEOP_DESC_INIT(old_whiteout);
@@ -112,8 +111,6 @@ VNODEOP_DESC_INIT(readdir);
 VNODEOP_DESC_INIT(readlink);
 VNODEOP_DESC_INIT(inactive);
 VNODEOP_DESC_INIT(reclaim);
-VNODEOP_DESC_INIT(lock);
-VNODEOP_DESC_INIT(unlock);
 VNODEOP_DESC_INIT(bmap);
 VNODEOP_DESC_INIT(strategy);
 VNODEOP_DESC_INIT(print);
@@ -158,21 +155,6 @@ VNODEOP_DESC_INIT(nrename);
  * the code in vfs_default.c is allowed to call those ops.
  */
 
-int
-vop_islocked(struct vop_ops *ops, struct vnode *vp, struct thread *td)
-{
-       struct vop_islocked_args ap;
-       int error;
-
-       ap.a_head.a_desc = &vop_islocked_desc;
-       ap.a_head.a_ops = ops;
-       ap.a_vp = vp;
-       ap.a_td = td;
-
-       DO_OPS(ops, error, &ap, vop_islocked);
-       return(error);
-}
-
 int
 vop_old_lookup(struct vop_ops *ops, struct vnode *dvp,
        struct vnode **vpp, struct componentname *cnp)
@@ -643,36 +625,6 @@ vop_reclaim(struct vop_ops *ops, struct vnode *vp)
        return(error);
 }
 
-int
-vop_lock(struct vop_ops *ops, struct vnode *vp, int flags)
-{
-       struct vop_lock_args ap;
-       int error;
-
-       ap.a_head.a_desc = &vop_lock_desc;
-       ap.a_head.a_ops = ops;
-       ap.a_vp = vp;
-       ap.a_flags = flags;
-
-       DO_OPS(ops, error, &ap, vop_lock);
-       return(error);
-}
-
-int
-vop_unlock(struct vop_ops *ops, struct vnode *vp, int flags)
-{
-       struct vop_unlock_args ap;
-       int error;
-
-       ap.a_head.a_desc = &vop_unlock_desc;
-       ap.a_head.a_ops = ops;
-       ap.a_vp = vp;
-       ap.a_flags = flags;
-
-       DO_OPS(ops, error, &ap, vop_unlock);
-       return(error);
-}
-
 int
 vop_bmap(struct vop_ops *ops, struct vnode *vp, off_t loffset,
        struct vnode **vpp, off_t *doffsetp, int *runp, int *runb)
@@ -1320,15 +1272,6 @@ vop_journal_operate_ap(struct vop_generic_args *ap)
        return (error);
 }
 
-int
-vop_islocked_ap(struct vop_islocked_args *ap)
-{
-       int error;
-
-       DO_OPS(ap->a_head.a_ops, error, ap, vop_islocked);
-       return(error);
-}
-
 int
 vop_open_ap(struct vop_open_args *ap)
 {
@@ -1482,24 +1425,6 @@ vop_reclaim_ap(struct vop_reclaim_args *ap)
        return(error);
 }
 
-int
-vop_lock_ap(struct vop_lock_args *ap)
-{
-       int error;
-
-       DO_OPS(ap->a_head.a_ops, error, ap, vop_lock);
-       return(error);
-}
-
-int
-vop_unlock_ap(struct vop_unlock_args *ap)
-{
-       int error;
-
-       DO_OPS(ap->a_head.a_ops, error, ap, vop_unlock);
-       return(error);
-}
-
 int
 vop_bmap_ap(struct vop_bmap_args *ap)
 {
index b40a801..a50ca32 100644 (file)
@@ -31,7 +31,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $DragonFly: src/sys/sys/vfsops.h,v 1.25 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/sys/vfsops.h,v 1.26 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -88,12 +88,6 @@ struct vop_generic_args {
        int a_reserved[4];
 };
 
-struct vop_islocked_args {
-       struct vop_generic_args a_head;
-       struct vnode *a_vp;
-       struct thread *a_td;
-};
-
 struct vop_old_lookup_args {
        struct vop_generic_args a_head;
        struct vnode *a_dvp;
@@ -290,18 +284,6 @@ struct vop_reclaim_args {
        struct vnode *a_vp;
 };
 
-struct vop_lock_args {
-       struct vop_generic_args a_head;
-       struct vnode *a_vp;
-       int a_flags;
-};
-
-struct vop_unlock_args {
-       struct vop_generic_args a_head;
-       struct vnode *a_vp;
-       int a_flags;
-};
-
 struct vop_bmap_args {
        struct vop_generic_args a_head;
        struct vnode *a_vp;
@@ -531,7 +513,7 @@ struct vop_ops {
 
 #define vop_ops_first_field    vop_default
        int     (*vop_default)(struct vop_generic_args *);
-       int     (*vop_islocked)(struct vop_islocked_args *);
+       int     (*vop_unused11)(void *);
        int     (*vop_old_lookup)(struct vop_old_lookup_args *);
        int     (*vop_unused03)(void *);
        int     (*vop_old_create)(struct vop_old_create_args *);
@@ -561,8 +543,8 @@ struct vop_ops {
        int     (*vop_readlink)(struct vop_readlink_args *);
        int     (*vop_inactive)(struct vop_inactive_args *);
        int     (*vop_reclaim)(struct vop_reclaim_args *);
-       int     (*vop_lock)(struct vop_lock_args *);
-       int     (*vop_unlock)(struct vop_unlock_args *);
+       int     (*vop_unused09)(void *);
+       int     (*vop_unused10)(void *);
        int     (*vop_bmap)(struct vop_bmap_args *);
        int     (*vop_strategy)(struct vop_strategy_args *);
        int     (*vop_print)(struct vop_print_args *);
@@ -612,7 +594,6 @@ struct vop_ops {
 union vop_args_union {
        struct vop_generic_args vu_head;
        struct vop_generic_args vu_default;
-       struct vop_islocked_args vu_islocked;
        struct vop_old_lookup_args vu_lookup;
        struct vop_old_create_args vu_create;
        struct vop_old_whiteout_args vu_whiteout;
@@ -640,8 +621,6 @@ union vop_args_union {
        struct vop_readlink_args vu_readlink;
        struct vop_inactive_args vu_inactive;
        struct vop_reclaim_args vu_reclaim;
-       struct vop_lock_args vu_lock;
-       struct vop_unlock_args vu_unlock;
        struct vop_bmap_args vu_bmap;
        struct vop_strategy_args vu_strategy;
        struct vop_print_args vu_print;
@@ -682,7 +661,6 @@ union vop_args_union {
  * routine directly in order to allow DragonFly to properly wrap the operation
  * in a message and dispatch it to the correct thread.
  */
-int vop_islocked(struct vop_ops *ops, struct vnode *vp, struct thread *td);
 int vop_old_lookup(struct vop_ops *ops, struct vnode *dvp, 
                struct vnode **vpp, struct componentname *cnp);
 int vop_old_create(struct vop_ops *ops, struct vnode *dvp,
@@ -737,8 +715,6 @@ int vop_readlink(struct vop_ops *ops, struct vnode *vp, struct uio *uio,
                struct ucred *cred);
 int vop_inactive(struct vop_ops *ops, struct vnode *vp);
 int vop_reclaim(struct vop_ops *ops, struct vnode *vp);
-int vop_lock(struct vop_ops *ops, struct vnode *vp, int flags);
-int vop_unlock(struct vop_ops *ops, struct vnode *vp, int flags);
 int vop_bmap(struct vop_ops *ops, struct vnode *vp, off_t loffset,
                struct vnode **vpp, off_t *doffsetp, int *runp, int *runb);
 int vop_strategy(struct vop_ops *ops, struct vnode *vp, struct bio *bio);
@@ -806,7 +782,6 @@ int vop_nrename(struct vop_ops *ops, struct namecache *fncp,
 int vop_vnoperate_ap(struct vop_generic_args *ap);
 int vop_cache_operate_ap(struct vop_generic_args *ap);
 int vop_journal_operate_ap(struct vop_generic_args *ap);
-int vop_islocked_ap(struct vop_islocked_args *ap);
 int vop_old_lookup_ap(struct vop_old_lookup_args *ap);
 int vop_old_create_ap(struct vop_old_create_args *ap);
 int vop_old_whiteout_ap(struct vop_old_whiteout_args *ap);
@@ -834,8 +809,6 @@ int vop_readdir_ap(struct vop_readdir_args *ap);
 int vop_readlink_ap(struct vop_readlink_args *ap);
 int vop_inactive_ap(struct vop_inactive_args *ap);
 int vop_reclaim_ap(struct vop_reclaim_args *ap);
-int vop_lock_ap(struct vop_lock_args *ap);
-int vop_unlock_ap(struct vop_unlock_args *ap);
 int vop_bmap_ap(struct vop_bmap_args *ap);
 int vop_strategy_ap(struct vop_strategy_args *ap);
 int vop_print_ap(struct vop_print_args *ap);
@@ -871,7 +844,6 @@ int vop_nrename_ap(struct vop_nrename_args *ap);
  * into a vop_ops operations vector.
  */
 extern struct syslink_desc vop_default_desc;
-extern struct syslink_desc vop_islocked_desc;
 extern struct syslink_desc vop_old_lookup_desc;
 extern struct syslink_desc vop_old_create_desc;
 extern struct syslink_desc vop_old_whiteout_desc;
@@ -899,8 +871,6 @@ extern struct syslink_desc vop_readdir_desc;
 extern struct syslink_desc vop_readlink_desc;
 extern struct syslink_desc vop_inactive_desc;
 extern struct syslink_desc vop_reclaim_desc;
-extern struct syslink_desc vop_lock_desc;
-extern struct syslink_desc vop_unlock_desc;
 extern struct syslink_desc vop_bmap_desc;
 extern struct syslink_desc vop_strategy_desc;
 extern struct syslink_desc vop_print_desc;
@@ -936,8 +906,6 @@ extern struct syslink_desc vop_nrename_desc;
  * VOP_*() convenience macros extract the operations vector and make the
  * vop_*() call.
  */
-#define VOP_ISLOCKED(vp, td)                           \
-       vop_islocked(*(vp)->v_ops, vp, td)
 #define VOP_OPEN(vp, mode, cred, fp)                   \
        vop_open(*(vp)->v_ops, vp, mode, cred, fp)
 #define VOP_CLOSE(vp, fflag)                           \
@@ -972,10 +940,6 @@ extern struct syslink_desc vop_nrename_desc;
        vop_inactive(*(vp)->v_ops, vp)
 #define VOP_RECLAIM(vp)                                        \
        vop_reclaim(*(vp)->v_ops, vp)
-#define VOP_LOCK(vp, flags)                            \
-       vop_lock(*(vp)->v_ops, vp, flags)
-#define VOP_UNLOCK(vp, flags)                          \
-       vop_unlock(*(vp)->v_ops, vp, flags)
 #define VOP_BMAP(vp, loff, vpp, doffp, runp, runb)     \
        vop_bmap(*(vp)->v_ops, vp, loff, vpp, doffp, runp, runb)
 #define VOP_PRINT(vp)                                  \
index 600fc70..141569f 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)vnode.h     8.7 (Berkeley) 2/4/94
  * $FreeBSD: src/sys/sys/vnode.h,v 1.111.2.19 2002/12/29 18:19:53 dillon Exp $
- * $DragonFly: src/sys/sys/vnode.h,v 1.64 2006/08/11 01:55:00 dillon Exp $
+ * $DragonFly: src/sys/sys/vnode.h,v 1.65 2006/08/12 00:26:20 dillon Exp $
  */
 
 #ifndef _SYS_VNODE_H_
@@ -405,29 +405,6 @@ extern struct lwkt_token mntvnode_token;
 
 typedef int (*vnodeopv_entry_t)(struct vop_generic_args *);
 
-#ifdef DEBUG_VFS_LOCKS
-/*
- * Macros to aid in tracing VFS locking problems.  Not totally
- * reliable since if the process sleeps between changing the lock
- * state and checking it with the assert, some other process could
- * change the state.  They are good enough for debugging a single
- * filesystem using a single-threaded test.  I find that 'cvs co src'
- * is a pretty good test.
- */
-
-#define        ASSERT_VOP_LOCKED(vp, str) assert_vop_locked(vp, str)
-#define        ASSERT_VOP_UNLOCKED(vp, str) assert_vop_unlocked(vp, str);
-
-void   assert_vop_locked(struct vnode *vp, const char *str);
-void   assert_vop_unlocked(struct vnode *vp, const char *str);
-
-#else
-
-#define        ASSERT_VOP_LOCKED(vp, str)
-#define        ASSERT_VOP_UNLOCKED(vp, str)
-
-#endif /* DEBUG_VFS_LOCKS */
-
 /*
  * VOCALL calls an op given an ops vector.  We break it out because BSD's
  * vclean changes the ops vector and then wants to call ops with the old
@@ -504,6 +481,8 @@ void        vn_strategy(struct vnode *vp, struct bio *bio);
 int    vn_close (struct vnode *vp, int flags);
 int    vn_isdisk (struct vnode *vp, int *errp);
 int    vn_lock (struct vnode *vp, int flags);
+int    vn_islocked (struct vnode *vp);
+void   vn_unlock (struct vnode *vp);
 #ifdef DEBUG_LOCKS
 int    debug_vn_lock (struct vnode *vp, int flags,
                const char *filename, int line);
@@ -529,10 +508,6 @@ void       vfs_timestamp (struct timespec *);
 int    vn_writechk (struct vnode *vp);
 int    vop_stdopen (struct vop_open_args *ap);
 int    vop_stdclose (struct vop_close_args *ap);
-int    vop_stdislocked (struct vop_islocked_args *ap);
-int    vop_stdlock (struct vop_lock_args *ap);
-int    vop_stdrlock (struct vop_lock_args *ap);
-int    vop_stdunlock (struct vop_unlock_args *ap);
 int    vop_nopoll (struct vop_poll_args *ap);
 int    vop_stdpathconf (struct vop_pathconf_args *ap);
 int    vop_stdpoll (struct vop_poll_args *ap);
index d09684f..3c9a189 100644 (file)
@@ -28,7 +28,7 @@
  * 
  *     @(#) src/sys/coda/coda_vnops.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $
  * $FreeBSD: src/sys/coda/coda_vnops.c,v 1.22.2.1 2001/06/29 16:26:22 shafeeq Exp $
- * $DragonFly: src/sys/vfs/coda/Attic/coda_vnops.c,v 1.42 2006/08/08 01:23:05 dillon Exp $
+ * $DragonFly: src/sys/vfs/coda/Attic/coda_vnops.c,v 1.43 2006/08/12 00:26:20 dillon Exp $
  * 
  */
 
@@ -165,12 +165,9 @@ struct vop_ops coda_vnode_ops = {
     .vop_readlink =    coda_readlink,
     .vop_inactive =    coda_inactive,
     .vop_reclaim =     coda_reclaim,
-    .vop_lock =                vop_stdlock,
-    .vop_unlock =      vop_stdunlock,
     .vop_bmap =                coda_bmap,
     .vop_strategy =    coda_strategy,
     .vop_print =       (void *)coda_vop_error,
-    .vop_islocked =    vop_stdislocked,
     .vop_pathconf =    (void *)coda_vop_error,
     .vop_advlock =     (void *)coda_vop_nop,
     .vop_poll =                vop_stdpoll,
@@ -277,7 +274,7 @@ coda_open(struct vop_open_args *ap)
        goto done;
 
     /* We get the vnode back locked.  Needs unlocked */
-    VOP_UNLOCK(vp, 0);
+    vn_unlock(vp);
     /* Keep a reference until the close comes in. */
     vref(*vpp);                
 
@@ -448,7 +445,7 @@ coda_rdwr(struct vnode *vp, struct uio *uiop, enum uio_rw rw, int ioflag,
             * We get the vnode back locked in both Mach and
             * NetBSD.  Needs unlocked 
             */
-           VOP_UNLOCK(cfvp, 0);
+           vn_unlock(cfvp);
        }
        else {
            opened_internally = 1;
@@ -1035,15 +1032,13 @@ coda_lookup(struct vop_old_lookup_args *ap)
      */
     if (!error || (error == EJUSTRETURN)) {
        if ((cnp->cn_flags & CNP_LOCKPARENT) == 0) {
-           if ((error = VOP_UNLOCK(dvp, 0))) {
-               return error; 
-           }       
+           vn_unlock(dvp);
            /* 
             * The parent is unlocked.  As long as there is a child,
             * lock it without bothering to check anything else. 
             */
            if (*ap->a_vpp) {
-               if ((error = VOP_LOCK(*ap->a_vpp, LK_EXCLUSIVE))) {
+               if ((error = vn_lock(*ap->a_vpp, LK_EXCLUSIVE))) {
                    printf("coda_lookup: ");
                    panic("unlocked parent but couldn't lock child");
                }
@@ -1052,7 +1047,7 @@ coda_lookup(struct vop_old_lookup_args *ap)
            /* The parent is locked, and may be the same as the child */
            if (*ap->a_vpp && (*ap->a_vpp != dvp)) {
                /* Different, go ahead and lock it. */
-               if ((error = VOP_LOCK(*ap->a_vpp, LK_EXCLUSIVE))) {
+               if ((error = vn_lock(*ap->a_vpp, LK_EXCLUSIVE))) {
                    printf("coda_lookup: ");
                    panic("unlocked parent but couldn't lock child");
                }
@@ -1138,7 +1133,7 @@ coda_create(struct vop_old_create_args *ap)
     }
 
     if (!error) {
-       if ((error = VOP_LOCK(*ap->a_vpp, LK_EXCLUSIVE))) {
+       if ((error = vn_lock(*ap->a_vpp, LK_EXCLUSIVE))) {
            printf("coda_create: ");
            panic("unlocked parent but couldn't lock child");
        }
index fff5e4e..9df9063 100644 (file)
@@ -36,7 +36,7 @@
  *     @(#)fdesc_vnops.c       8.9 (Berkeley) 1/21/94
  *
  * $FreeBSD: src/sys/miscfs/fdesc/fdesc_vnops.c,v 1.47.2.1 2001/10/22 22:49:26 chris Exp $
- * $DragonFly: src/sys/vfs/fdesc/fdesc_vnops.c,v 1.32 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/fdesc/fdesc_vnops.c,v 1.33 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -191,7 +191,7 @@ fdesc_lookup(struct vop_old_lookup_args *ap)
                goto bad;
        }
 
-       VOP_UNLOCK(dvp, 0);
+       vn_unlock(dvp);
        if (cnp->cn_namelen == 1 && *pname == '.') {
                *vpp = dvp;
                vref(dvp);      
index 660dfcb..6788ff3 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)fifo_vnops.c        8.10 (Berkeley) 5/27/95
  * $FreeBSD: src/sys/miscfs/fifofs/fifo_vnops.c,v 1.45.2.4 2003/04/22 10:11:24 bde Exp $
- * $DragonFly: src/sys/vfs/fifofs/fifo_vnops.c,v 1.32 2006/07/19 06:08:10 dillon Exp $
+ * $DragonFly: src/sys/vfs/fifofs/fifo_vnops.c,v 1.33 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -220,7 +220,7 @@ fifo_open(struct vop_open_args *ap)
        }
        if ((ap->a_mode & FREAD) && (ap->a_mode & O_NONBLOCK) == 0) {
                if (fip->fi_writers == 0) {
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        error = tsleep((caddr_t)&fip->fi_readers,
                            PCATCH, "fifoor", 0);
                        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
@@ -241,7 +241,7 @@ fifo_open(struct vop_open_args *ap)
                        }
                } else {
                        if (fip->fi_readers == 0) {
-                               VOP_UNLOCK(vp, 0);
+                               vn_unlock(vp);
                                error = tsleep((caddr_t)&fip->fi_writers,
                                    PCATCH, "fifoow", 0);
                                vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
@@ -288,7 +288,7 @@ fifo_read(struct vop_read_args *ap)
        else
                flags = 0;
        startresid = uio->uio_resid;
-       VOP_UNLOCK(ap->a_vp, 0);
+       vn_unlock(ap->a_vp);
        error = soreceive(rso, (struct sockaddr **)0, uio, (struct mbuf **)0,
            (struct mbuf **)0, &flags);
        vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY);
@@ -318,7 +318,7 @@ fifo_write(struct vop_write_args *ap)
                flags = MSG_FNONBLOCKING;
        else
                flags = 0;
-       VOP_UNLOCK(ap->a_vp, 0);
+       vn_unlock(ap->a_vp);
        error = sosend(wso, (struct sockaddr *)0, ap->a_uio, 0,
                       (struct mbuf *)0, flags, td);
        vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY);
index 09e5c11..fd42278 100644 (file)
@@ -5,7 +5,7 @@
  *  University of Utah, Department of Computer Science
  *
  * $FreeBSD: src/sys/gnu/ext2fs/ext2_lookup.c,v 1.21.2.3 2002/11/17 02:02:42 bde Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_lookup.c,v 1.23 2006/05/26 16:56:18 dillon Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_lookup.c,v 1.24 2006/08/12 00:26:20 dillon Exp $
  */
 /*
  * Copyright (c) 1989, 1993
@@ -524,7 +524,7 @@ searchloop:
                 * information cannot be used.
                 */
                if (!lockparent)
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                return (EJUSTRETURN);
        }
        return (ENOENT);
@@ -597,7 +597,7 @@ found:
                }
                *vpp = tdp;
                if (!lockparent)
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                return (0);
        }
 
@@ -620,7 +620,7 @@ found:
                        return (error);
                *vpp = tdp;
                if (!lockparent)
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                return (0);
        }
 
@@ -645,7 +645,7 @@ found:
         */
        pdp = vdp;
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(pdp, 0);     /* race to get the inode */
+               vn_unlock(pdp); /* race to get the inode */
                if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp)) != 0) {
                        vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY);
                        return (error);
@@ -662,7 +662,7 @@ found:
                if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp)) != 0)
                        return (error);
                if (!lockparent)
-                       VOP_UNLOCK(pdp, 0);
+                       vn_unlock(pdp);
                *vpp = tdp;
        }
        return (0);
index 06cd897..ee3f379 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)ufs_quota.c 8.5 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_quota.c,v 1.27.2.3 2002/01/15 10:33:32 phk Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_quota.c,v 1.5 2006/05/06 18:48:52 dillon Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_quota.c,v 1.6 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -396,7 +396,7 @@ ext2_quotaon(struct ucred *cred, struct mount *mp, int type, caddr_t fname)
        nd.nl_open_vp = NULL;
        nlookup_done(&nd);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (*vpp != vp)
                ext2_quotaoff(mp, type);
        ump->um_qflags[type] |= QTF_OPENING;
@@ -787,7 +787,7 @@ ext2_dqget(struct vnode *vp, u_long id, struct ext2mount *ump, int type,
        if (auio.uio_resid == sizeof(struct ext2_dqblk) && error == 0)
                bzero((caddr_t)&dq->dq_dqb, sizeof(struct ext2_dqblk));
        if (vp != dqvp)
-               VOP_UNLOCK(dqvp, 0);
+               vn_unlock(dqvp);
        if (dq->dq_flags & DQ_WANT)
                wakeup((caddr_t)dq);
        dq->dq_flags = 0;
@@ -872,7 +872,7 @@ ext2_dqsync(struct vnode *vp, struct ext2_dquot *dq)
                (void) tsleep((caddr_t)dq, 0, "dqsync", 0);
                if ((dq->dq_flags & DQ_MOD) == 0) {
                        if (vp != dqvp)
-                               VOP_UNLOCK(dqvp, 0);
+                               vn_unlock(dqvp);
                        return (0);
                }
        }
@@ -893,7 +893,7 @@ ext2_dqsync(struct vnode *vp, struct ext2_dquot *dq)
                wakeup((caddr_t)dq);
        dq->dq_flags &= ~(DQ_MOD|DQ_LOCK|DQ_WANT);
        if (vp != dqvp)
-               VOP_UNLOCK(dqvp, 0);
+               vn_unlock(dqvp);
        return (error);
 }
 
index 34e24fb..cb6cb49 100644 (file)
@@ -38,7 +38,7 @@
  *
  *     @(#)ffs_vfsops.c        8.8 (Berkeley) 4/18/94
  *     $FreeBSD: src/sys/gnu/ext2fs/ext2_vfsops.c,v 1.63.2.7 2002/07/01 00:18:51 iedowse Exp $
- *     $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.46 2006/08/03 16:40:48 swildner Exp $
+ *     $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.47 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -279,7 +279,7 @@ ext2_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                        VOP_OPEN(devvp, FREAD, FSCRED, NULL);
                        VOP_CLOSE(devvp, FREAD|FWRITE);
-                       VOP_UNLOCK(devvp, 0);
+                       vn_unlock(devvp);
                }
                if (!error && (mp->mnt_flag & MNT_RELOAD))
                        error = ext2_reload(mp, cred);
@@ -297,10 +297,10 @@ ext2_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                                vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                                error = VOP_ACCESS(devvp, VREAD | VWRITE, cred);
                                if (error) {
-                                       VOP_UNLOCK(devvp, 0);
+                                       vn_unlock(devvp);
                                        return (error);
                                }
-                               VOP_UNLOCK(devvp, 0);
+                               vn_unlock(devvp);
                        }
 
                        if ((fs->s_es->s_state & EXT2_VALID_FS) == 0 ||
@@ -322,7 +322,7 @@ ext2_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                        VOP_OPEN(devvp, FREAD|FWRITE, FSCRED, NULL);
                        VOP_CLOSE(devvp, FREAD);
-                       VOP_UNLOCK(devvp, 0);
+                       vn_unlock(devvp);
                }
                if (args.fspec == 0) {
                        /*
@@ -363,7 +363,7 @@ ext2_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                        vput(devvp);
                        return (error);
                }
-               VOP_UNLOCK(devvp, 0);
+               vn_unlock(devvp);
        }
 
        if ((mp->mnt_flag & MNT_UPDATE) == 0) {
@@ -723,7 +723,7 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp, struct ucred *cred)
        ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, NULL);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return (error);
        dev = devvp->v_rdev;
@@ -1010,7 +1010,7 @@ ext2_sync(struct mount *mp, int waitfor)
                vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY);
                if ((error = VOP_FSYNC(ump->um_devvp, waitfor)) != 0)
                        scaninfo.allerror = error;
-               VOP_UNLOCK(ump->um_devvp, 0);
+               vn_unlock(ump->um_devvp);
        }
 #if QUOTA
        ext2_qsync(mp);
index aebd048..090fd91 100644 (file)
@@ -44,7 +44,7 @@
  *     @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
  *     @(#)ext2_vnops.c        8.7 (Berkeley) 2/3/94
  * $FreeBSD: src/sys/gnu/ext2fs/ext2_vnops.c,v 1.51.2.2 2003/01/02 17:26:18 bde Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vnops.c,v 1.35 2006/07/19 06:08:11 dillon Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vnops.c,v 1.36 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -385,7 +385,7 @@ ext2_link(struct vop_old_link_args *ap)
        }
 out1:
        if (tdvp != vp)
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
 out2:
        return (error);
 }
@@ -457,13 +457,13 @@ abortit:
        dp = VTOI(fdvp);
        ip = VTOI(fvp);
        if (ip->i_nlink >= LINK_MAX) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                error = EMLINK;
                goto abortit;
        }
        if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND))
            || (dp->i_flags & APPEND)) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                error = EPERM;
                goto abortit;
        }
@@ -474,7 +474,7 @@ abortit:
                if ((fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.') ||
                    dp == ip || (fcnp->cn_flags | tcnp->cn_flags) & CNP_ISDOTDOT ||
                    (ip->i_flag & IN_RENAME)) {
-                       VOP_UNLOCK(fvp, 0);
+                       vn_unlock(fvp);
                        error = EINVAL;
                        goto abortit;
                }
@@ -503,7 +503,7 @@ abortit:
        ip->i_nlink++;
        ip->i_flag |= IN_CHANGE;
        if ((error = EXT2_UPDATE(fvp, 1)) != 0) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                goto bad;
        }
 
@@ -518,7 +518,7 @@ abortit:
         * call to checkpath().
         */
        error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred);
-       VOP_UNLOCK(fvp, 0);
+       vn_unlock(fvp);
 
        /*
         * tvp (if not NULL) and tdvp are locked.  fvp and fdvp are not.
@@ -1051,7 +1051,7 @@ ext2_rmdir(struct vop_old_rmdir_args *ap)
                goto out;
        dp->i_nlink--;
        dp->i_flag |= IN_CHANGE;
-       VOP_UNLOCK(dvp, 0);
+       vn_unlock(dvp);
        /*
         * Truncate inode.  The only stuff left
         * in the directory is "." and "..".  The
@@ -2186,9 +2186,7 @@ struct vop_ops ext2_vnode_vops = {
        .vop_old_create =       ext2_create,
        .vop_getattr =          ext2_getattr,
        .vop_inactive =         ext2_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         ext2_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_mkdir =        ext2_mkdir,
        .vop_old_mknod =        ext2_mknod,
        .vop_mmap =             ext2_mmap,
@@ -2206,7 +2204,6 @@ struct vop_ops ext2_vnode_vops = {
        .vop_setattr =          ext2_setattr,
        .vop_strategy =         ext2_strategy,
        .vop_old_symlink =      ext2_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_old_whiteout =     ext2_whiteout,
        .vop_getpages =         ext2_getpages,
        .vop_putpages =         ext2_putpages
@@ -2219,13 +2216,10 @@ struct vop_ops ext2_spec_vops = {
        .vop_close =            ext2spec_close,
        .vop_getattr =          ext2_getattr,
        .vop_inactive =         ext2_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            ext2_print,
        .vop_read =             ext2spec_read,
        .vop_reclaim =          ext2_reclaim,
        .vop_setattr =          ext2_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            ext2spec_write
 };
 
@@ -2236,14 +2230,11 @@ struct vop_ops ext2_fifo_vops = {
        .vop_close =            ext2fifo_close,
        .vop_getattr =          ext2_getattr,
        .vop_inactive =         ext2_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_kqfilter =         ext2fifo_kqfilter,
-       .vop_lock =             vop_stdlock,
        .vop_print =            ext2_print,
        .vop_read =             ext2fifo_read,
        .vop_reclaim =          ext2_reclaim,
        .vop_setattr =          ext2_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            ext2fifo_write
 };
 
index 665435b..74b9ec2 100644 (file)
@@ -38,7 +38,7 @@
  *
  *     @(#)fs.h        8.7 (Berkeley) 4/19/94
  * $FreeBSD: src/sys/gnu/ext2fs/fs.h,v 1.5.2.1 2000/11/11 13:12:45 bde Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/fs.h,v 1.10 2006/05/05 21:15:09 dillon Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/fs.h,v 1.11 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*
@@ -164,11 +164,11 @@ extern u_char *fragtbl[];
 /* a few remarks about superblock locking/unlocking
  * Linux provides special routines for doing so
  * I haven't figured out yet what BSD does
- * I think I'll try a VOP_LOCK/VOP_UNLOCK on the device vnode
+ * I think I'll try a vn_lock/vn_unlock on the device vnode
  */
 #define  DEVVP(inode)          (VFSTOEXT2(ITOV(inode)->v_mount)->um_devvp)
 #define  lock_super(devvp)     vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY)
-#define  unlock_super(devvp)   VOP_UNLOCK(devvp, 0)
+#define  unlock_super(devvp)   vn_unlock(devvp)
 
 /*
  * To lock a buffer, set the B_LOCKED flag and then brelse() it. To unlock,
index 3a148dd..44cdcd2 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/hpfs/hpfs.h,v 1.1 1999/12/09 19:09:58 semenu Exp $
- * $DragonFly: src/sys/vfs/hpfs/hpfs.h,v 1.20 2006/05/06 18:48:53 dillon Exp $
+ * $DragonFly: src/sys/vfs/hpfs/hpfs.h,v 1.21 2006/08/12 00:26:20 dillon Exp $
  */
 
 /*#define HPFS_DEBUG 10*/
@@ -385,26 +385,12 @@ MALLOC_DECLARE(M_HPFSNO);
 #define        FID(f)          (*((lsn_t *)(f)->fid_data))
 #define dbtodoff(dbn)  ((off_t)(dbn) << DEV_BSHIFT)
 
-#if defined(__NetBSD__)
-#define MALLOC_DEFINE(a, b, c)
-#define M_HPFSMNT      M_TEMP
-#define M_HPFSNO       M_TEMP
-typedef int (vop_t) (void *);
-#define HASHINIT(a, b, c, d)   hashinit((a), (b), (c), (d))
-#define bqrelse(bp)            brelse(bp)
-#define VOP__LOCK(a, b)                VOP_LOCK((a), (b) ? LK_EXCLUSIVE : LK_SHARED)
-#define VOP__UNLOCK(a, b)      VOP_UNLOCK((a), 0)
-#define VGET(a, b, c)          vget((a), LK_EXCLUSIVE)
-#define VN_LOCK(a, b)          vn_lock((a), LK_EXCLUSIVE)
-#define        LOCKMGR(a, b)           lockmgr((a), (b), NULL)
-#else  /* defined(__DragonFly__) */
 #define HASHINIT(a, b, c, d)   hashinit((a), (b), (d))
-#define VOP__LOCK(a, b)                VOP_LOCK((a), (b))
-#define VOP__UNLOCK(a, b)      VOP_UNLOCK((a), (b))
+#define VOP__LOCK(a, b)                vn_lock((a), (b))
+#define VOP__UNLOCK(a, b)      vn_unlock((a))
 #define VGET(a, b, c)          vget((a), (b))
 #define VN_LOCK(a, b)          vn_lock((a), (b))
 #define        LOCKMGR(a, b)           lockmgr((a), (b))
-#endif
 
 struct vfsconf;
 
index 839cc71..fd23e49 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/hpfs/hpfs_vnops.c,v 1.2.2.2 2002/01/15 18:35:09 semenu Exp $
- * $DragonFly: src/sys/vfs/hpfs/hpfs_vnops.c,v 1.36 2006/07/18 22:22:15 dillon Exp $
+ * $DragonFly: src/sys/vfs/hpfs/hpfs_vnops.c,v 1.37 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -1217,7 +1217,7 @@ hpfs_pathconf(struct vop_pathconf_args *ap)
 /*
  * Global vfs data structures
  */
-#if defined(__DragonFly__)
+
 struct vop_ops hpfs_vnode_vops = {
        .vop_default =          vop_defaultop,
        .vop_getattr =          hpfs_getattr,
@@ -1227,9 +1227,6 @@ struct vop_ops hpfs_vnode_vops = {
        .vop_print =            hpfs_print,
        .vop_old_create =       hpfs_create,
        .vop_old_remove =       hpfs_remove,
-       .vop_islocked =         vop_stdislocked,
-       .vop_unlock =           vop_stdunlock,
-       .vop_lock =             vop_stdlock,
        .vop_old_lookup =       hpfs_lookup,
        .vop_access =           hpfs_access,
        .vop_readdir =          hpfs_readdir,
@@ -1244,52 +1241,3 @@ struct vop_ops hpfs_vnode_vops = {
        .vop_pathconf =         hpfs_pathconf
 };
 
-#else /* defined(__NetBSD__) */
-struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = {
-       { &vop_default_desc, (vnodeopv_entry_t) genfs_badop },  /* XXX */
-       { &vop_old_lookup_desc, (vnodeopv_entry_t) hpfs_lookup }, /* lookup */
-       { &vop_old_create_desc, genfs_eopnotsupp },             /* create */
-       { &vop_old_mknod_desc, genfs_eopnotsupp },              /* mknod */
-       { &vop_access_desc, (vnodeopv_entry_t) hpfs_access },   /* access */
-       { &vop_getattr_desc, (vnodeopv_entry_t) hpfs_getattr }, /* getattr */
-       { &vop_setattr_desc, genfs_eopnotsupp },        /* setattr */
-       { &vop_read_desc, (vnodeopv_entry_t) hpfs_read },       /* read */
-       { &vop_write_desc, (vnodeopv_entry_t) hpfs_write },     /* write */
-       { &vop_lease_desc, genfs_lease_check },         /* lease */
-       { &vop_fcntl_desc, genfs_fcntl },               /* fcntl */
-       { &vop_ioctl_desc, genfs_enoioctl },            /* ioctl */
-       { &vop_poll_desc, genfs_poll },                 /* poll */
-       { &vop_revoke_desc, genfs_revoke },             /* revoke */
-       { &vop_mmap_desc, genfs_eopnotsupp },           /* mmap */
-       { &vop_fsync_desc, genfs_fsync },               /* fsync */
-       { &vop_seek_desc, genfs_seek },                 /* seek */
-       { &vop_old_remove_desc, genfs_eopnotsupp },     /* remove */
-       { &vop_old_link_desc, genfs_eopnotsupp },       /* link */
-       { &vop_old_rename_desc, genfs_eopnotsupp },     /* rename */
-       { &vop_old_mkdir_desc, genfs_eopnotsupp },      /* mkdir */
-       { &vop_old_rmdir_desc, genfs_eopnotsupp },      /* rmdir */
-       { &vop_old_symlink_desc, genfs_eopnotsupp },    /* symlink */
-       { &vop_readdir_desc, (vnodeopv_entry_t) hpfs_readdir }, /* readdir */
-       { &vop_readlink_desc, genfs_eopnotsupp },       /* readlink */
-       { &vop_abortop_desc, genfs_abortop },           /* abortop */
-       { &vop_inactive_desc, (vnodeopv_entry_t) hpfs_inactive },       /* inactive */
-       { &vop_reclaim_desc, (vnodeopv_entry_t) hpfs_reclaim }, /* reclaim */
-       { &vop_lock_desc, genfs_lock },                 /* lock */
-       { &vop_unlock_desc, genfs_unlock },             /* unlock */
-       { &vop_bmap_desc, (vnodeopv_entry_t) hpfs_bmap },       /* bmap */
-       { &vop_strategy_desc, (vnodeopv_entry_t) hpfs_strategy },       /* strategy */
-       { &vop_print_desc, (vnodeopv_entry_t) hpfs_print },     /* print */
-       { &vop_islocked_desc, genfs_islocked },         /* islocked */
-       { &vop_pathconf_desc, hpfs_pathconf },          /* pathconf */
-       { &vop_advlock_desc, genfs_nullop },            /* advlock */
-       { &vop_blkatoff_desc, genfs_eopnotsupp },       /* blkatoff */
-       { &vop_valloc_desc, genfs_eopnotsupp },         /* valloc */
-       { &vop_reallocblks_desc, genfs_eopnotsupp },    /* reallocblks */
-       { &vop_vfree_desc, genfs_eopnotsupp },          /* vfree */
-       { &vop_truncate_desc, genfs_eopnotsupp },       /* truncate */
-       { &vop_update_desc, genfs_eopnotsupp },         /* update */
-       { &vop_bwrite_desc, vn_bwrite },                /* bwrite */
-       { NULL, NULL }
-};
-
-#endif
index e629b16..06511a7 100644 (file)
@@ -39,7 +39,7 @@
  *
  *     @(#)cd9660_lookup.c     8.2 (Berkeley) 1/23/94
  * $FreeBSD: src/sys/isofs/cd9660/cd9660_lookup.c,v 1.23.2.2 2001/11/04 06:19:47 dillon Exp $
- * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_lookup.c,v 1.22 2006/05/05 21:15:10 dillon Exp $
+ * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_lookup.c,v 1.23 2006/08/12 00:26:20 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -346,7 +346,7 @@ found:
         * it's a relocated directory.
         */
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(pdp, 0);     /* race to get the inode */
+               vn_unlock(pdp); /* race to get the inode */
                error = cd9660_vget_internal(vdp->v_mount, dp->i_ino, &tdp,
                                             dp->i_ino != ino, ep);
                brelse(bp);
@@ -375,7 +375,7 @@ found:
                        return (error);
                if (!lockparent) {
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
-                       VOP_UNLOCK(pdp, 0);
+                       vn_unlock(pdp);
                }
                *vpp = tdp;
        }
index 20f0939..da4112d 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)cd9660_vfsops.c     8.18 (Berkeley) 5/22/95
  * $FreeBSD: src/sys/isofs/cd9660/cd9660_vfsops.c,v 1.74.2.7 2002/04/08 09:39:29 bde Exp $
- * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_vfsops.c,v 1.38 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_vfsops.c,v 1.39 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -151,7 +151,7 @@ iso_mountroot(struct mount *mp)
 
        vn_lock(rootvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(rootvp, FREAD, FSCRED, NULL);
-       VOP_UNLOCK(rootvp, 0);
+       vn_unlock(rootvp);
        if (error)
                return (error);
 
@@ -235,7 +235,7 @@ cd9660_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                vput(devvp);
                return (error);
        }
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
 
        if ((mp->mnt_flag & MNT_UPDATE) == 0) {
                error = iso_mountfs(devvp, mp, &args);
@@ -297,7 +297,7 @@ iso_mountfs(struct vnode *devvp, struct mount *mp, struct iso_args *argp)
 
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(devvp, FREAD, FSCRED, NULL);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return error;
        dev = devvp->v_rdev;
index cbbc697..65ae8bd 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)cd9660_vnops.c      8.19 (Berkeley) 5/27/95
  * $FreeBSD: src/sys/isofs/cd9660/cd9660_vnops.c,v 1.62 1999/12/15 23:01:51 eivind Exp $
- * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_vnops.c,v 1.29 2006/07/19 06:08:12 dillon Exp $
+ * $DragonFly: src/sys/vfs/isofs/cd9660/cd9660_vnops.c,v 1.30 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -877,8 +877,6 @@ struct vop_ops cd9660_vnode_vops = {
        .vop_getattr =          cd9660_getattr,
        .vop_inactive =         cd9660_inactive,
        .vop_ioctl =            cd9660_ioctl,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_pathconf =         cd9660_pathconf,
        .vop_print =            cd9660_print,
        .vop_read =             cd9660_read,
@@ -887,7 +885,6 @@ struct vop_ops cd9660_vnode_vops = {
        .vop_reclaim =          cd9660_reclaim,
        .vop_setattr =          cd9660_setattr,
        .vop_strategy =         cd9660_strategy,
-       .vop_unlock =           vop_stdunlock,
        .vop_getpages =         cd9660_getpages,
        .vop_putpages =         cd9660_putpages
 };
@@ -900,12 +897,9 @@ struct vop_ops cd9660_spec_vops = {
        .vop_access =           cd9660_access,
        .vop_getattr =          cd9660_getattr,
        .vop_inactive =         cd9660_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            cd9660_print,
        .vop_reclaim =          cd9660_reclaim,
        .vop_setattr =          cd9660_setattr,
-       .vop_unlock =           vop_stdunlock
 };
 
 struct vop_ops cd9660_fifo_vops = {
@@ -913,11 +907,8 @@ struct vop_ops cd9660_fifo_vops = {
        .vop_access =           cd9660_access,
        .vop_getattr =          cd9660_getattr,
        .vop_inactive =         cd9660_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            cd9660_print,
        .vop_reclaim =          cd9660_reclaim,
        .vop_setattr =          cd9660_setattr,
-       .vop_unlock =           vop_stdunlock
 };
 
index ab6c963..31a8f97 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)mfs_vnops.c 8.11 (Berkeley) 5/22/95
  * $FreeBSD: src/sys/ufs/mfs/mfs_vnops.c,v 1.47.2.1 2001/05/22 02:06:43 bp Exp $
- * $DragonFly: src/sys/vfs/mfs/mfs_vnops.c,v 1.31 2006/08/08 01:23:07 dillon Exp $
+ * $DragonFly: src/sys/vfs/mfs/mfs_vnops.c,v 1.32 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -82,13 +82,10 @@ static struct vop_ops mfs_vnode_vops = {
        .vop_getpages =         mfs_getpages,
        .vop_inactive =         mfs_inactive,
        .vop_ioctl =            (void *)vop_enotty,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_open =             mfs_open,
        .vop_print =            mfs_print,
        .vop_reclaim =          mfs_reclaim,
        .vop_strategy =         mfs_strategy,
-       .vop_unlock =           vop_stdunlock
 };
 
 struct vop_ops *mfs_vnode_vops_p = &mfs_vnode_vops;
index 4e2d861..1de7bb1 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/msdosfs/msdosfs_lookup.c,v 1.30.2.1 2000/11/03 15:55:39 bp Exp $ */
-/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_lookup.c,v 1.19 2006/05/06 02:43:14 dillon Exp $ */
+/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_lookup.c,v 1.20 2006/08/12 00:26:21 dillon Exp $ */
 /*     $NetBSD: msdosfs_lookup.c,v 1.37 1997/11/17 15:36:54 ws Exp $   */
 
 /*-
@@ -361,7 +361,7 @@ notfound:
                 * information cannot be used.
                 */
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (EJUSTRETURN);
@@ -447,7 +447,7 @@ foundroot:
                        return (error);
                *vpp = DETOV(tdp);
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (0);
@@ -478,7 +478,7 @@ foundroot:
                        return (error);
                *vpp = DETOV(tdp);
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (0);
@@ -505,7 +505,7 @@ foundroot:
         */
        pdp = vdp;
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(pdp, 0);
+               vn_unlock(pdp);
                cnp->cn_flags |= CNP_PDIRUNLOCK;
                error = deget(pmp, cluster, blkoff,  &tdp);
                if (error) {
@@ -529,7 +529,7 @@ foundroot:
                if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0)
                        return (error);
                if (!lockparent) {
-                       VOP_UNLOCK(pdp, 0);
+                       vn_unlock(pdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                *vpp = DETOV(tdp);
index d03ca95..cead151 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/msdosfs/Attic/msdosfs_vfsops.c,v 1.60.2.8 2004/03/02 09:43:04 tjr Exp $ */
-/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vfsops.c,v 1.36 2006/07/18 22:22:15 dillon Exp $ */
+/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vfsops.c,v 1.37 2006/08/12 00:26:21 dillon Exp $ */
 /*     $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $   */
 
 /*-
@@ -205,10 +205,10 @@ msdosfs_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                                vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                                error = VOP_ACCESS(devvp, VREAD | VWRITE, cred);
                                if (error) {
-                                       VOP_UNLOCK(devvp, 0);
+                                       vn_unlock(devvp);
                                        return (error);
                                }
-                               VOP_UNLOCK(devvp, 0);
+                               vn_unlock(devvp);
                        }
                        pmp->pm_flags &= ~MSDOSFSMNT_RONLY;
                }
@@ -259,7 +259,7 @@ msdosfs_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                        vput(devvp);
                        return (error);
                }
-               VOP_UNLOCK(devvp, 0);
+               vn_unlock(devvp);
        }
        if ((mp->mnt_flag & MNT_UPDATE) == 0) {
                error = mountmsdosfs(devvp, mp, &args);
@@ -322,14 +322,14 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct msdosfs_args *argp)
                return (EBUSY);
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = vinvalbuf(devvp, V_SAVE, 0, 0);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return (error);
 
        ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, NULL);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return (error);
        dev = devvp->v_rdev;
@@ -802,7 +802,7 @@ msdosfs_sync(struct mount *mp, int waitfor)
                vn_lock(pmp->pm_devvp, LK_EXCLUSIVE | LK_RETRY);
                if ((error = VOP_FSYNC(pmp->pm_devvp, waitfor)) != 0)
                        scaninfo.allerror = error;
-               VOP_UNLOCK(pmp->pm_devvp, 0);
+               vn_unlock(pmp->pm_devvp);
        }
        return (scaninfo.allerror);
 }
index 50ba9c6..0d927fb 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/msdosfs/msdosfs_vnops.c,v 1.95.2.4 2003/06/13 15:05:47 trhodes Exp $ */
-/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vnops.c,v 1.39 2006/07/18 22:22:15 dillon Exp $ */
+/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vnops.c,v 1.40 2006/08/12 00:26:21 dillon Exp $ */
 /*     $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $   */
 
 /*-
@@ -1047,7 +1047,7 @@ abortit:
                    (fcnp->cn_flags & CNP_ISDOTDOT) ||
                    (tcnp->cn_flags & CNP_ISDOTDOT) ||
                    (ip->de_flag & DE_RENAME)) {
-                       VOP_UNLOCK(fvp, 0);
+                       vn_unlock(fvp);
                        error = EINVAL;
                        goto abortit;
                }
@@ -1081,7 +1081,7 @@ abortit:
         * call to doscheckpath().
         */
        error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred);
-       VOP_UNLOCK(fvp, 0);
+       vn_unlock(fvp);
        if (VTODE(fdvp)->de_StartCluster != VTODE(tdvp)->de_StartCluster)
                newparent = 1;
 
@@ -1185,7 +1185,7 @@ abortit:
        fcnp->cn_flags &= ~CNP_MODMASK;
        fcnp->cn_flags |= CNP_LOCKPARENT;
        if (newparent == 0)
-               VOP_UNLOCK(tdvp, 0);
+               vn_unlock(tdvp);
        error = relookup(fdvp, &fvp, fcnp);
        if (error || fvp == NULL) {
                /*
@@ -1515,7 +1515,7 @@ msdosfs_rmdir(struct vop_old_rmdir_args *ap)
         * directory.  Since dos filesystems don't do this we just purge
         * the name cache.
         */
-       VOP_UNLOCK(dvp, 0);
+       vn_unlock(dvp);
        /*
         * Truncate the directory that is being deleted.
         */
@@ -1981,9 +1981,7 @@ struct vop_ops msdosfs_vnode_vops = {
        .vop_fsync =            msdosfs_fsync,
        .vop_getattr =          msdosfs_getattr,
        .vop_inactive =         msdosfs_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         msdosfs_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_mkdir =        msdosfs_mkdir,
        .vop_old_mknod =        msdosfs_mknod,
        .vop_pathconf =         msdosfs_pathconf,
@@ -1997,7 +1995,6 @@ struct vop_ops msdosfs_vnode_vops = {
        .vop_setattr =          msdosfs_setattr,
        .vop_strategy =         msdosfs_strategy,
        .vop_old_symlink =      msdosfs_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            msdosfs_write,
        .vop_getpages =         msdosfs_getpages,
        .vop_putpages =         msdosfs_putpages
index 3cae395..5bea938 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)nfs_node.c  8.6 (Berkeley) 5/22/95
  * $FreeBSD: src/sys/nfs/nfs_node.c,v 1.36.2.3 2002/01/05 22:25:04 dillon Exp $
- * $DragonFly: src/sys/vfs/nfs/nfs_node.c,v 1.24 2006/08/08 03:52:43 dillon Exp $
+ * $DragonFly: src/sys/vfs/nfs/nfs_node.c,v 1.25 2006/08/12 00:26:21 dillon Exp $
  */
 
 
@@ -297,93 +297,3 @@ nfs_reclaim(struct vop_reclaim_args *ap)
        return (0);
 }
 
-#if 0
-/*
- * Lock an nfsnode
- *
- * nfs_lock(struct vnode *a_vp)
- */
-int
-nfs_lock(struct vop_lock_args *ap)
-{
-       struct vnode *vp = ap->a_vp;
-
-       /*
-        * Ugh, another place where interruptible mounts will get hung.
-        * If you make this sleep interruptible, then you have to fix all
-        * the VOP_LOCK() calls to expect interruptibility.
-        */
-       while (vp->v_flag & VXLOCK) {
-               vp->v_flag |= VXWANT;
-               (void) tsleep((caddr_t)vp, 0, "nfslck", 0);
-       }
-       if (vp->v_tag == VT_NON)
-               return (ENOENT);
-
-#if 0
-       /*
-        * Only lock regular files.  If a server crashed while we were
-        * holding a directory lock, we could easily end up sleeping
-        * until the server rebooted while holding a lock on the root.
-        * Locks are only needed for protecting critical sections in
-        * VMIO at the moment.
-        * New vnodes will have type VNON but they should be locked
-        * since they may become VREG.  This is checked in loadattrcache
-        * and unwanted locks are released there.
-        */
-       if (vp->v_type == VREG || vp->v_type == VNON) {
-               while (np->n_flag & NLOCKED) {
-                       np->n_flag |= NWANTED;
-                       (void) tsleep((caddr_t) np, 0, "nfslck2", 0);
-                       /*
-                        * If the vnode has transmuted into a VDIR while we
-                        * were asleep, then skip the lock.
-                        */
-                       if (vp->v_type != VREG && vp->v_type != VNON)
-                               return (0);
-               }
-               np->n_flag |= NLOCKED;
-       }
-#endif
-
-       return (0);
-}
-
-/*
- * Unlock an nfsnode
- *
- * nfs_unlock(struct vnode *a_vp)
- */
-int
-nfs_unlock(struct vop_unlock_args *ap)
-{
-#if 0
-       struct vnode* vp = ap->a_vp;
-        struct nfsnode* np = VTONFS(vp);
-
-       if (vp->v_type == VREG || vp->v_type == VNON) {
-               if (!(np->n_flag & NLOCKED))
-                       panic("nfs_unlock: nfsnode not locked");
-               np->n_flag &= ~NLOCKED;
-               if (np->n_flag & NWANTED) {
-                       np->n_flag &= ~NWANTED;
-                       wakeup((caddr_t) np);
-               }
-       }
-#endif
-
-       return (0);
-}
-
-/*
- * Check for a locked nfsnode
- *
- * nfs_islocked(struct vnode *a_vp, struct thread *a_td)
- */
-int
-nfs_islocked(struct vop_islocked_args *ap)
-{
-       return VTONFS(ap->a_vp)->n_flag & NLOCKED ? 1 : 0;
-}
-#endif
-
index 4be1b47..884245b 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)nfs_serv.c  8.8 (Berkeley) 7/31/95
  * $FreeBSD: src/sys/nfs/nfs_serv.c,v 1.93.2.6 2002/12/29 18:19:53 dillon Exp $
- * $DragonFly: src/sys/vfs/nfs/nfs_serv.c,v 1.36 2006/05/06 18:48:53 dillon Exp $
+ * $DragonFly: src/sys/vfs/nfs/nfs_serv.c,v 1.37 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -491,7 +491,7 @@ nfsrv_lookup(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
                         * However, the cnd resource continues to be maintained
                         * via the original nd.  Confused?  You aren't alone!
                         */
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        ncp = cache_hold(nd.nl_ncp);
                        nlookup_done(&nd);
                        error = nlookup_init_raw(&nd, nfs_pub.np_index,
@@ -2852,7 +2852,7 @@ nfsrv_readdir(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
                error = 0;
                goto nfsmout;
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
 
        /*
         * end section.  Allocate rbuf and continue
@@ -2883,7 +2883,7 @@ again:
                if (!error)
                        error = getret;
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (error) {
                vrele(vp);
                vp = NULL;
@@ -3133,7 +3133,7 @@ nfsrv_readdirplus(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
                error = 0;
                goto nfsmout;
        }
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        MALLOC(rbuf, caddr_t, siz, M_TEMP, M_WAITOK);
 again:
        iv.iov_base = rbuf;
@@ -3154,7 +3154,7 @@ again:
        error = VOP_READDIR(vp, &io, cred, &eofflag, &ncookies, &cookies);
        off = (u_quad_t)io.uio_offset;
        getret = VOP_GETATTR(vp, &at);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (!cookies && !error)
                error = NFSERR_PERM;
        if (!error)
index 8242b1a..6c55a92 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)nfs_subs.c  8.8 (Berkeley) 5/22/95
  * $FreeBSD: /repoman/r/ncvs/src/sys/nfsclient/nfs_subs.c,v 1.128 2004/04/14 23:23:55 peadar Exp $
- * $DragonFly: src/sys/vfs/nfs/nfs_subs.c,v 1.40 2006/06/05 07:26:11 dillon Exp $
+ * $DragonFly: src/sys/vfs/nfs/nfs_subs.c,v 1.41 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -1797,7 +1797,7 @@ nfsm_srvfattr(struct nfsrv_descript *nfsd, struct vattr *vap,
  *     - look up fsid in mount list (if not found ret error)
  *     - get vp and export rights by calling VFS_FHTOVP()
  *     - if cred->cr_uid == 0 or MNT_EXPORTANON set it to credanon
- *     - if not lockflag unlock it with VOP_UNLOCK()
+ *     - if not lockflag unlock it with vn_unlock()
  */
 int
 nfsrv_fhtovp(fhandle_t *fhp, int lockflag, struct vnode **vpp,
@@ -1865,7 +1865,7 @@ nfsrv_fhtovp(fhandle_t *fhp, int lockflag, struct vnode **vpp,
                *rdonlyp = 0;
 
        if (!lockflag)
-               VOP_UNLOCK(*vpp, 0);
+               vn_unlock(*vpp);
        return (0);
 }
 
index 27eae2e..e10bf30 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)nfs_vfsops.c        8.12 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/nfs/nfs_vfsops.c,v 1.91.2.7 2003/01/27 20:04:08 dillon Exp $
- * $DragonFly: src/sys/vfs/nfs/nfs_vfsops.c,v 1.44 2006/07/18 22:22:15 dillon Exp $
+ * $DragonFly: src/sys/vfs/nfs/nfs_vfsops.c,v 1.45 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include "opt_bootp.h"
@@ -993,7 +993,7 @@ mountnfs(struct nfs_args *argp, struct mount *mp, struct sockaddr *nam,
        /*
         * Lose the lock but keep the ref.
         */
-       VOP_UNLOCK(*vpp, 0);
+       vn_unlock(*vpp);
 
        return (0);
 bad:
@@ -1147,7 +1147,7 @@ nfs_sync_scan1(struct mount *mp, struct vnode *vp, void *data)
 {
     struct scaninfo *info = data;
 
-    if (VOP_ISLOCKED(vp, NULL) || RB_EMPTY(&vp->v_rbdirty_tree))
+    if (vn_islocked(vp) || RB_EMPTY(&vp->v_rbdirty_tree))
        return(-1);
     if (info->waitfor == MNT_LAZY)
        return(-1);
index b584438..1e52afc 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
  * $FreeBSD: src/sys/nfs/nfs_vnops.c,v 1.150.2.5 2001/12/20 19:56:28 dillon Exp $
- * $DragonFly: src/sys/vfs/nfs/nfs_vnops.c,v 1.63 2006/07/19 06:08:13 dillon Exp $
+ * $DragonFly: src/sys/vfs/nfs/nfs_vnops.c,v 1.64 2006/08/12 00:26:21 dillon Exp $
  */
 
 
@@ -146,9 +146,7 @@ struct vop_ops nfsv2_vnode_vops = {
        .vop_getpages =         nfs_getpages,
        .vop_putpages =         nfs_putpages,
        .vop_inactive =         nfs_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         nfs_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_lookup =       nfs_lookup,
        .vop_old_mkdir =        nfs_mkdir,
        .vop_old_mknod =        nfs_mknod,
@@ -166,7 +164,6 @@ struct vop_ops nfsv2_vnode_vops = {
        .vop_setattr =          nfs_setattr,
        .vop_strategy =         nfs_strategy,
        .vop_old_symlink =      nfs_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            nfs_write,
        .vop_nresolve =         nfs_nresolve
 };
@@ -181,13 +178,10 @@ struct vop_ops nfsv2_spec_vops = {
        .vop_fsync =            nfs_fsync,
        .vop_getattr =          nfs_getattr,
        .vop_inactive =         nfs_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            nfs_print,
        .vop_read =             nfsspec_read,
        .vop_reclaim =          nfs_reclaim,
        .vop_setattr =          nfs_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            nfsspec_write
 };
 
@@ -198,13 +192,10 @@ struct vop_ops nfsv2_fifo_vops = {
        .vop_fsync =            nfs_fsync,
        .vop_getattr =          nfs_getattr,
        .vop_inactive =         nfs_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            nfs_print,
        .vop_read =             nfsfifo_read,
        .vop_reclaim =          nfs_reclaim,
        .vop_setattr =          nfs_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            nfsfifo_write
 };
 
@@ -1024,14 +1015,14 @@ nfs_lookup(struct vop_old_lookup_args *ap)
                *vpp = newvp;
                m_freem(mrep);
                if (!lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (0);
        }
 
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
                cnp->cn_flags |= CNP_PDIRUNLOCK;
                error = nfs_nget(dvp->v_mount, fhp, fhsize, &np);
                if (error) {
@@ -1058,7 +1049,7 @@ nfs_lookup(struct vop_old_lookup_args *ap)
                        return (error);
                }
                if (!lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                newvp = NFSTOV(np);
@@ -1087,7 +1078,7 @@ nfsmout:
                     cnp->cn_nameiop == NAMEI_RENAME) &&
                    error == ENOENT) {
                        if (!lockparent) {
-                               VOP_UNLOCK(dvp, 0);
+                               vn_unlock(dvp);
                                cnp->cn_flags |= CNP_PDIRUNLOCK;
                        }
                        if (dvp->v_mount->mnt_flag & MNT_RDONLY)
index 222c3e0..b743f91 100644 (file)
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/ntfs/ntfs.h,v 1.8.2.2 2001/10/12 22:08:49 semenu Exp $
- * $DragonFly: src/sys/vfs/ntfs/ntfs.h,v 1.13 2006/05/06 18:48:53 dillon Exp $
+ * $DragonFly: src/sys/vfs/ntfs/ntfs.h,v 1.14 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*#define NTFS_DEBUG 1*/
@@ -304,33 +304,12 @@ MALLOC_DECLARE(M_NTFSDIR);
 MALLOC_DECLARE(M_NTFSNTHASH);
 #endif
 
-#ifdef __NetBSD__
-#define MALLOC_DEFINE(a, b, c)
-#define M_NTFSNTHASH   M_NTFS
-#define M_NTFSNTVATTR  M_NTFS
-#define M_NTFSRDATA    M_NTFS
-#define M_NTFSRUN      M_NTFS
-#define M_NTFSDECOMP   M_NTFS
-#define M_NTFSMNT      M_NTFS
-#define M_NTFSNTNODE   M_NTFS
-#define M_NTFSFNODE    M_NTFS
-#define M_NTFSDIR      M_NTFS
-typedef int (vop_t) (void *);
-#define HASHINIT(a, b, c, d)   hashinit((a), (b), (c), (d))
-#define bqrelse(bp)            brelse(bp)
-#define VOP__UNLOCK(a, b)      VOP_UNLOCK((a), (b))
-#define VGET(a, b)             vget((a), (b))
-#define VN_LOCK(a, b)          vn_lock((a), (b))
-#define        LOCKMGR(a, b)           lockmgr((a), (b), NULL)
-#else /* !NetBSD */
 #define HASHINIT(a, b, c, d)   hashinit((a), (b), (d))
-#define VOP__UNLOCK(a, b)      VOP_UNLOCK((a), (b))
+#define VOP__UNLOCK(a, b)      vn_unlock((a))
 #define VGET(a, b)             vget((a), (b))
 #define VN_LOCK(a, b)          vn_lock((a), (b))
 #define        LOCKMGR(a, b)           lockmgr((a), (b))
 
-#endif /* NetBSD */
-
 #if defined(NTFS_DEBUG)
 #define dprintf(a) printf a
 #if NTFS_DEBUG > 1
index c79faf0..33bf34d 100644 (file)
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/ntfs/ntfs_vfsops.c,v 1.20.2.5 2001/12/25 01:44:45 dillon Exp $
- * $DragonFly: src/sys/vfs/ntfs/ntfs_vfsops.c,v 1.38 2006/07/18 22:22:15 dillon Exp $
+ * $DragonFly: src/sys/vfs/ntfs/ntfs_vfsops.c,v 1.39 2006/08/12 00:26:21 dillon Exp $
  */
 
 
@@ -656,14 +656,7 @@ ntfs_unmount(struct mount *mp, int mntflags)
 
        vinvalbuf(ntmp->ntm_devvp, V_SAVE, 0, 0);
 
-#if defined(__NetBSD__)
-       /* lock the device vnode before calling VOP_CLOSE() */
-       VOP_LOCK(ntmp->ntm_devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_CLOSE(ntmp->ntm_devvp, ronly ? FREAD : FREAD|FWRITE);
-       VOP__UNLOCK(ntmp->ntm_devvp, 0);
-#else
-       error = VOP_CLOSE(ntmp->ntm_devvp, ronly ? FREAD : FREAD|FWRITE);
-#endif
 
        vrele(ntmp->ntm_devvp);
 
index fc07fc8..38e4b90 100644 (file)
@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/ntfs/ntfs_vnops.c,v 1.9.2.4 2002/08/06 19:35:18 semenu Exp $
- * $DragonFly: src/sys/vfs/ntfs/ntfs_vnops.c,v 1.35 2006/07/19 06:08:13 dillon Exp $
+ * $DragonFly: src/sys/vfs/ntfs/ntfs_vnops.c,v 1.36 2006/08/12 00:26:21 dillon Exp $
  *
  */
 
@@ -839,9 +839,6 @@ struct vop_ops ntfs_vnode_vops = {
        .vop_reclaim =          ntfs_reclaim,
        .vop_print =            ntfs_print,
        .vop_pathconf =         ntfs_pathconf,
-       .vop_islocked =         vop_stdislocked,
-       .vop_unlock =           vop_stdunlock,
-       .vop_lock =             vop_stdlock,
        .vop_old_lookup =       ntfs_lookup,
        .vop_access =           ntfs_access,
        .vop_close =            ntfs_close,
index 3409145..fba9ec0 100644 (file)
@@ -37,7 +37,7 @@
  *
  * @(#)lofs_vfsops.c   1.2 (Berkeley) 6/18/92
  * $FreeBSD: src/sys/miscfs/nullfs/null_vfsops.c,v 1.35.2.3 2001/07/26 20:37:11 iedowse Exp $
- * $DragonFly: src/sys/vfs/nullfs/null_vfsops.c,v 1.23 2006/08/09 22:47:35 dillon Exp $
+ * $DragonFly: src/sys/vfs/nullfs/null_vfsops.c,v 1.24 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -119,7 +119,7 @@ nullfs_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
 
        vfs_add_vnodeops(mp, &null_vnode_vops, &mp->mnt_vn_norm_ops);
 
-       VOP_UNLOCK(rootvp, 0);
+       vn_unlock(rootvp);
 
        /*
         * Keep a held reference to the root vnode.
index 0d02b71..3acbc30 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/nwfs/nwfs_vfsops.c,v 1.6.2.6 2001/10/25 19:18:54 dillon Exp $
- * $DragonFly: src/sys/vfs/nwfs/nwfs_vfsops.c,v 1.24 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/nwfs/nwfs_vfsops.c,v 1.25 2006/08/12 00:26:21 dillon Exp $
  */
 #include "opt_ncp.h"
 #ifndef NCP
@@ -212,7 +212,7 @@ nwfs_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
        /*
         * Lose the lock but keep the ref.
         */
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        NCPVODEBUG("rootvp.vrefcnt=%d\n",vp->v_usecount);
        return error;
 bad:
@@ -445,7 +445,7 @@ loop:
                 */
                if (vp->v_mount != mp)
                        goto loop;
-               if (VOP_ISLOCKED(vp, NULL) || RB_EMPTY(&vp->v_rbdirty_tree) ||
+               if (vn_islocked(vp) || RB_EMPTY(&vp->v_rbdirty_tree) ||
                    waitfor == MNT_LAZY)
                        continue;
                if (vget(vp, LK_EXCLUSIVE))
index b639857..f179486 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/nwfs/nwfs_vnops.c,v 1.6.2.3 2001/03/14 11:26:59 bp Exp $
- * $DragonFly: src/sys/vfs/nwfs/nwfs_vnops.c,v 1.31 2006/07/19 06:08:13 dillon Exp $
+ * $DragonFly: src/sys/vfs/nwfs/nwfs_vnops.c,v 1.32 2006/08/12 00:26:21 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -97,9 +97,7 @@ struct vop_ops nwfs_vnode_vops = {
        .vop_putpages =         nwfs_putpages,
        .vop_ioctl =            nwfs_ioctl,
        .vop_inactive =         nwfs_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         nwfs_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_lookup =       nwfs_lookup,
        .vop_old_mkdir =        nwfs_mkdir,
        .vop_old_mknod =        nwfs_mknod,
@@ -114,7 +112,6 @@ struct vop_ops nwfs_vnode_vops = {
        .vop_setattr =          nwfs_setattr,
        .vop_strategy =         nwfs_strategy,
        .vop_old_symlink =      nwfs_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            nwfs_write
 };
 
@@ -906,7 +903,7 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & CNP_ISD
                /* Handle RENAME or CREATE case... */
                if ((nameiop == NAMEI_CREATE || nameiop == NAMEI_RENAME) && wantparent) {
                        if (!lockparent)
-                               VOP_UNLOCK(dvp, 0);
+                               vn_unlock(dvp);
                        return (EJUSTRETURN);
                }
                return ENOENT;
@@ -925,7 +922,7 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & CNP_ISD
                error = nwfs_nget(mp, fid, fap, dvp, &vp);
                if (error) return (error);
                *vpp = vp;
-               if (!lockparent) VOP_UNLOCK(dvp, 0);
+               if (!lockparent) vn_unlock(dvp);
                return (0);
        }
        if (nameiop == NAMEI_RENAME && wantparent) {
@@ -936,11 +933,11 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & CNP_ISD
                if (error) return (error);
                *vpp = vp;
                if (!lockparent)
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                return (0);
        }
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(dvp, 0);     /* race to get the inode */
+               vn_unlock(dvp); /* race to get the inode */
                error = nwfs_nget(mp, fid, NULL, NULL, &vp);
                if (error) {
                        vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
@@ -960,7 +957,7 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & CNP_ISD
                *vpp = vp;
                NCPVNDEBUG("lookup: getnewvp!\n");
                if (!lockparent)
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
        }
 #if 0
        /* XXX MOVE TO NREMOVE */
index 7576a4a..90f08d6 100644 (file)
@@ -36,7 +36,7 @@
  *     @(#)portal_vnops.c      8.14 (Berkeley) 5/21/95
  *
  * $FreeBSD: src/sys/miscfs/portal/portal_vnops.c,v 1.38 1999/12/21 06:29:00 chris Exp $
- * $DragonFly: src/sys/vfs/portal/portal_vnops.c,v 1.30 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/portal/portal_vnops.c,v 1.31 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -125,7 +125,6 @@ portal_lookup(struct vop_old_lookup_args *ap)
        if (cnp->cn_namelen == 1 && *pname == '.') {
                *vpp = dvp;
                vref(dvp);
-               /*VOP_LOCK(dvp);*/
                return (0);
        }
 
@@ -161,7 +160,6 @@ portal_lookup(struct vop_old_lookup_args *ap)
 
        *vpp = fvp;
        vx_unlock(fvp);
-       /*VOP_LOCK(fvp);*/
        return (0);
 
 bad:;
index f30c059..a3f56ce 100644 (file)
@@ -37,7 +37,7 @@
  *     @(#)procfs_vnops.c      8.18 (Berkeley) 5/21/95
  *
  * $FreeBSD: src/sys/miscfs/procfs/procfs_vnops.c,v 1.76.2.7 2002/01/22 17:22:59 nectar Exp $
- * $DragonFly: src/sys/vfs/procfs/procfs_vnops.c,v 1.34 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/procfs/procfs_vnops.c,v 1.35 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -800,7 +800,7 @@ out:
        if (error == 0 && *vpp != dvp) {
                if ((cnp->cn_flags & CNP_LOCKPARENT) == 0) {
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                }
        }
        return (error);
index 7cda039..c03f81f 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_vfsops.c,v 1.2.2.5 2003/01/17 08:20:26 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_vfsops.c,v 1.29 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_vfsops.c,v 1.30 2006/08/12 00:26:21 dillon Exp $
  */
 #include "opt_netsmb.h"
 #ifndef NETSMB
@@ -204,7 +204,7 @@ smbfs_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
        error = smbfs_root(mp, &vp);
        if (error)
                goto bad;
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        SMBVDEBUG("root.v_usecount = %d\n", vp->v_usecount);
 
 #ifdef DIAGNOSTICS
@@ -394,7 +394,7 @@ loop:
                 */
                if (vp->v_mount != mp)
                        goto loop;
-               if (VOP_ISLOCKED(vp, NULL) || RB_EMPTY(&vp->v_rbdirty_tree) ||
+               if (vn_islocked(vp) || RB_EMPTY(&vp->v_rbdirty_tree) ||
                    waitfor == MNT_LAZY)
                        continue;
                if (vget(vp, LK_EXCLUSIVE))
index 93b2fd9..257d4f9 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_vnops.c,v 1.2.2.8 2003/04/04 08:57:23 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_vnops.c,v 1.33 2006/07/19 06:08:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_vnops.c,v 1.34 2006/08/12 00:26:21 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -98,9 +98,7 @@ struct vop_ops smbfs_vnode_vops = {
        .vop_getpages =         smbfs_getpages,
        .vop_inactive =         smbfs_inactive,
        .vop_ioctl =            smbfs_ioctl,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         smbfs_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_lookup =       smbfs_lookup,
        .vop_old_mkdir =        smbfs_mkdir,
        .vop_old_mknod =        smbfs_mknod,
@@ -117,7 +115,6 @@ struct vop_ops smbfs_vnode_vops = {
        .vop_setattr =          smbfs_setattr,
        .vop_strategy =         smbfs_strategy,
        .vop_old_symlink =      smbfs_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            smbfs_write,
        .vop_getextattr =       smbfs_getextattr
 /*     .vop_setextattr =       smbfs_setextattr */
@@ -1099,7 +1096,7 @@ smbfs_lookup(struct vop_old_lookup_args *ap)
                        if (error)
                                return error;
                        if (!lockparent) {
-                               VOP_UNLOCK(dvp, 0);
+                               vn_unlock(dvp);
                                cnp->cn_flags |= CNP_PDIRUNLOCK;
                        }
                        return (EJUSTRETURN);
@@ -1125,7 +1122,7 @@ smbfs_lookup(struct vop_old_lookup_args *ap)
                        return error;
                *vpp = vp;
                if (!lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return 0;
@@ -1141,13 +1138,13 @@ smbfs_lookup(struct vop_old_lookup_args *ap)
                        return error;
                *vpp = vp;
                if (!lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return 0;
        }
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(dvp, 0);
+               vn_unlock(dvp);
                error = smbfs_nget(mp, dvp, name, nmlen, NULL, &vp);
                if (error) {
                        vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
@@ -1172,7 +1169,7 @@ smbfs_lookup(struct vop_old_lookup_args *ap)
                *vpp = vp;
                SMBVDEBUG("lookup: getnewvp!\n");
                if (!lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
        }
index f168ff3..b31011a 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)spec_vnops.c        8.14 (Berkeley) 5/21/95
  * $FreeBSD: src/sys/miscfs/specfs/spec_vnops.c,v 1.131.2.4 2001/02/26 04:23:20 jlemon Exp $
- * $DragonFly: src/sys/vfs/specfs/spec_vnops.c,v 1.47 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/specfs/spec_vnops.c,v 1.48 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -239,7 +239,7 @@ spec_open(struct vop_open_args *ap)
         * dev_dopen() is always called for each open.  dev_dclose() is
         * only called for the last close unless D_TRACKCLOSE is set.
         */
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        error = dev_dopen(dev, ap->a_mode, S_IFCHR, ap->a_cred);
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 
@@ -321,7 +321,7 @@ spec_read(struct vop_read_args *ap)
        if (uio->uio_resid == 0)
                return (0);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        error = dev_dread(dev, uio, ap->a_ioflag);
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        return (error);
@@ -351,7 +351,7 @@ spec_write(struct vop_write_args *ap)
        if (dev == NULL)                /* device was revoked */
                return (EBADF);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        error = dev_dwrite(dev, uio, ap->a_ioflag);
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        return (error);
@@ -579,9 +579,9 @@ spec_close(struct vop_close_args *ap)
            (dev_dflags(dev) & D_TRACKCLOSE) ||
            (vcount(vp) <= 1 && vp->v_opencount == 1))) {
                needrelock = 0;
-               if (VOP_ISLOCKED(vp, curthread)) {
+               if (vn_islocked(vp)) {
                        needrelock = 1;
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                }
                error = dev_dclose(dev, ap->a_fflag, S_IFCHR);
                if (needrelock)
index 2a9dbee..4821090 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/udf/udf_vfsops.c,v 1.16 2003/11/05 06:56:08 scottl Exp $
- * $DragonFly: src/sys/vfs/udf/udf_vfsops.c,v 1.20 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/udf/udf_vfsops.c,v 1.21 2006/08/12 00:26:21 dillon Exp $
  */
 
 /* udf_vfsops.c */
@@ -178,7 +178,7 @@ udf_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                vput(devvp);
                return(error);
        }
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
 
        if ((error = udf_mountfs(devvp, mp))) {
                vrele(devvp);
@@ -251,7 +251,7 @@ udf_mountfs(struct vnode *devvp, struct mount *mp)
 
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(devvp, FREAD, FSCRED, NULL);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return(error);
        needclose = 1;
index a5e9ca8..d17f083 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/udf/udf_vnops.c,v 1.33 2003/12/07 05:04:49 scottl Exp $
- * $DragonFly: src/sys/vfs/udf/udf_vnops.c,v 1.23 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/udf/udf_vnops.c,v 1.24 2006/08/12 00:26:21 dillon Exp $
  */
 
 /* udf_vnops.c */
@@ -1010,7 +1010,7 @@ lookloop:
                                gd->gd_nchstats->ncs_pass2++;
                        if ((flags & CNP_LOCKPARENT) == 0) {
                                a->a_cnp->cn_flags |= CNP_PDIRUNLOCK;
-                               VOP_UNLOCK(dvp, 0);
+                               vn_unlock(dvp);
                        }
 
                        *vpp = tdp;
index fcd5d2c..b08e3c1 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ffs_balloc.c        8.8 (Berkeley) 6/16/95
  * $FreeBSD: src/sys/ufs/ffs/ffs_balloc.c,v 1.26.2.1 2002/10/10 19:48:20 dillon Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_balloc.c,v 1.17 2006/05/06 02:43:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_balloc.c,v 1.18 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -74,7 +74,6 @@ ffs_balloc(struct vop_balloc_args *ap)
        ufs_daddr_t newb, *bap, pref;
        int deallocated, osize, nsize, num, i, error;
        ufs_daddr_t *allocib, *blkp, *allocblk, allociblk[NIADDR + 1];
-       struct thread *td = curthread;  /* XXX */
        int unwindidx;
        int seqcount;
 
@@ -95,7 +94,7 @@ ffs_balloc(struct vop_balloc_args *ap)
         * The vnode must be locked for us to be able to safely mess
         * around with the inode.
         */
-       if (VOP_ISLOCKED(vp, td) != LK_EXCLUSIVE) {
+       if (vn_islocked(vp) != LK_EXCLUSIVE) {
                panic("ffs_balloc: vnode %p not exclusively locked!", vp);
        }
 
index 9118e81..94bc651 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.3.2.2 2003/05/29 06:15:35 alc Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_rawread.c,v 1.25 2006/08/08 03:52:45 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_rawread.c,v 1.26 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include <sys/param.h>
 #include <sys/sysctl.h>
 
 static int ffs_rawread_readahead(struct vnode *vp, caddr_t udata, off_t offset,
-                                size_t len, struct thread *td, struct buf *bp,
-                                int *baseticks);
+                                size_t len, struct buf *bp, int *baseticks);
 static int ffs_rawread_main(struct vnode *vp,
                            struct uio *uio);
 
-static int ffs_rawread_sync(struct vnode *vp, struct thread *td);
+static int ffs_rawread_sync(struct vnode *vp);
 
 int ffs_rawread(struct vnode *vp, struct uio *uio, int *workdone);
 
@@ -89,7 +88,7 @@ ffs_rawread_setup(void)
 
 
 static int
-ffs_rawread_sync(struct vnode *vp, struct thread *td)
+ffs_rawread_sync(struct vnode *vp)
 {
        int error;
        int upgraded;
@@ -101,10 +100,10 @@ ffs_rawread_sync(struct vnode *vp, struct thread *td)
            (vp->v_flag & VOBJDIRTY) != 0) {
                crit_exit();
 
-               if (VOP_ISLOCKED(vp, td) != LK_EXCLUSIVE) {
+               if (vn_islocked(vp) != LK_EXCLUSIVE) {
                        upgraded = 1;
                        /* Upgrade to exclusive lock, this might block */
-                       VOP_LOCK(vp, LK_UPGRADE);
+                       vn_lock(vp, LK_UPGRADE);
                } else
                        upgraded = 0;
                
@@ -123,7 +122,7 @@ ffs_rawread_sync(struct vnode *vp, struct thread *td)
                        if (error != 0) {
                                crit_exit();
                                if (upgraded != 0)
-                                       VOP_LOCK(vp, LK_DOWNGRADE);
+                                       vn_lock(vp, LK_DOWNGRADE);
                                return (error);
                        }
                }
@@ -132,7 +131,7 @@ ffs_rawread_sync(struct vnode *vp, struct thread *td)
                        crit_exit();
                        if ((error = VOP_FSYNC(vp, MNT_WAIT)) != 0) {
                                if (upgraded != 0)
-                                       VOP_LOCK(vp, LK_DOWNGRADE);
+                                       vn_lock(vp, LK_DOWNGRADE);
                                return (error);
                        }
                        crit_enter();
@@ -142,7 +141,7 @@ ffs_rawread_sync(struct vnode *vp, struct thread *td)
                }
                crit_exit();
                if (upgraded != 0)
-                       VOP_LOCK(vp, LK_DOWNGRADE);
+                       vn_lock(vp, LK_DOWNGRADE);
        } else {
                crit_exit();
        }
@@ -152,8 +151,7 @@ ffs_rawread_sync(struct vnode *vp, struct thread *td)
 
 static int
 ffs_rawread_readahead(struct vnode *vp, caddr_t udata, off_t loffset,
-                     size_t len, struct thread *td, struct buf *bp,
-                     int *baseticks)
+                     size_t len, struct buf *bp, int *baseticks)
 {
        int error;
        int iolen;
@@ -239,9 +237,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
        caddr_t udata;
        int resid;
        off_t offset;
-       struct thread *td;
        
-       td = uio->uio_td ? uio->uio_td : curthread;
        udata = uio->uio_iov->iov_base;
        resid = uio->uio_resid;
        offset = uio->uio_offset;
@@ -258,7 +254,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
                        /* XXX: Leave some bufs for swap */
                        bp = getpbuf(&ffsrawbufcnt);
                        error = ffs_rawread_readahead(vp, udata, offset, resid,
-                                   td, bp, &baseticks);
+                                                     bp, &baseticks);
                        if (error != 0)
                                break;
                        
@@ -274,7 +270,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
                                                        udata + bp->b_bufsize,
                                                        offset + bp->b_bufsize,
                                                        resid - bp->b_bufsize,
-                                                       td, nbp, &baseticks);
+                                                       nbp, &baseticks);
                                        if (nerror) {
                                                relpbuf(nbp, &ffsrawbufcnt);
                                                nbp = NULL;
@@ -308,7 +304,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
                        /* Incomplete read.  Try to read remaining part */
                        error = ffs_rawread_readahead(
                                    vp, udata, offset,
-                                   bp->b_bufsize - iolen, td, bp, &baseticks);
+                                   bp->b_bufsize - iolen, bp, &baseticks);
                        if (error != 0)
                                break;
                } else if (nbp != NULL) { /* Complete read with readahead */
@@ -327,7 +323,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
                                                vp, udata + bp->b_bufsize,
                                                offset + bp->b_bufsize,
                                                resid - bp->b_bufsize,
-                                               td, nbp, &baseticks);
+                                               nbp, &baseticks);
                                if (nerror != 0) {
                                        relpbuf(nbp, &ffsrawbufcnt);
                                        nbp = NULL;
@@ -337,7 +333,7 @@ ffs_rawread_main(struct vnode *vp, struct uio *uio)
                        break;          
                }  else if (resid > 0) { /* More to read, no readahead */
                        error = ffs_rawread_readahead(vp, udata, offset,
-                                                     resid, td, bp,
+                                                     resid, bp,
                                                      &baseticks);
                        if (error != 0)
                                break;
@@ -373,8 +369,7 @@ ffs_rawread(struct vnode *vp,
            uio->uio_iovcnt == 1 && 
            uio->uio_segflg == UIO_USERSPACE &&
            uio->uio_resid == uio->uio_iov->iov_len &&
-           (((uio->uio_td != NULL) ? uio->uio_td : curthread)->td_flags &
-            TDF_DEADLKTREAT) == 0) {
+           (curthread->td_flags & TDF_DEADLKTREAT) == 0) {
                int secsize;            /* Media sector size */
                off_t filebytes;        /* Bytes left of file */
                int blockbytes;         /* Bytes left of file in full blocks */
@@ -391,9 +386,7 @@ ffs_rawread(struct vnode *vp,
                    (uio->uio_resid & (secsize - 1)) == 0) {
                        
                        /* Sync dirty pages and buffers if needed */
-                       error = ffs_rawread_sync(vp,
-                                                (uio->uio_td != NULL) ?
-                                                uio->uio_td : curthread);
+                       error = ffs_rawread_sync(vp);
                        if (error != 0)
                                return error;
                        
index 75b2c5b..6df9007 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     from: @(#)ffs_softdep.c 9.59 (McKusick) 6/21/00
  * $FreeBSD: src/sys/ufs/ffs/ffs_softdep.c,v 1.57.2.11 2002/02/05 18:46:53 dillon Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_softdep.c,v 1.47 2006/06/05 21:03:03 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_softdep.c,v 1.48 2006/08/12 00:26:21 dillon Exp $
  */
 
 /*
@@ -701,7 +701,7 @@ process_worklist_item(matchmnt, flags)
                dirrem = WK_DIRREM(wk);
                vp = ufs_ihashlookup(VFSTOUFS(dirrem->dm_mnt)->um_dev,
                    dirrem->dm_oldinum);
-               if (vp == NULL || !VOP_ISLOCKED(vp, curthread))
+               if (vp == NULL || !vn_islocked(vp))
                        break;
        }
        if (wk == 0) {
@@ -823,7 +823,7 @@ softdep_flushfiles(struct mount *oldmnt, int flags)
                }
                vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                error = VOP_FSYNC(devvp, MNT_WAIT);
-               VOP_UNLOCK(devvp, 0);
+               vn_unlock(devvp);
                if (error)
                        break;
        }
@@ -4127,7 +4127,7 @@ softdep_fsync(vp)
                 * ufs_lookup for details on possible races.
                 */
                FREE_LOCK(&lk);
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
                error = VFS_VGET(mnt, parentino, &pvp);
                vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
                if (error != 0)
@@ -4313,7 +4313,7 @@ top:
         */
        if (vn_isdisk(vp, NULL) && 
            vp->v_rdev &&
-           vp->v_rdev->si_mountpoint && !VOP_ISLOCKED(vp, NULL) &&
+           vp->v_rdev->si_mountpoint && !vn_islocked(vp) &&
            (error = VFS_SYNC(vp->v_rdev->si_mountpoint, MNT_WAIT)) != 0)
                return (error);
        return (0);
index b510bae..130166f 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ffs_vfsops.c        8.31 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.117.2.10 2002/06/23 22:34:52 iedowse Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_vfsops.c,v 1.46 2006/07/28 02:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_vfsops.c,v 1.47 2006/08/12 00:26:21 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -225,10 +225,10 @@ ffs_mount(struct mount *mp,               /* mount struct pointer */
                                vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                                if ((error = VOP_ACCESS(devvp, VREAD | VWRITE,
                                    cred)) != 0) {
-                                       VOP_UNLOCK(devvp, 0);
+                                       vn_unlock(devvp);
                                        return (error);
                                }
-                               VOP_UNLOCK(devvp, 0);
+                               vn_unlock(devvp);
                        }
 
                        fs->fs_flags &= ~FS_UNCLEAN;
@@ -306,7 +306,7 @@ ffs_mount(struct mount *mp,         /* mount struct pointer */
                        vput(devvp);
                        return (error);
                }
-               VOP_UNLOCK(devvp, 0);
+               vn_unlock(devvp);
        }
 
        if (mp->mnt_flag & MNT_UPDATE) {
@@ -402,7 +402,7 @@ success:
                                VOP_OPEN(devvp, FREAD|FWRITE, FSCRED, NULL);
                                VOP_CLOSE(devvp, FREAD);
                        }
-                       VOP_UNLOCK(devvp, 0);
+                       vn_unlock(devvp);
                        ffs_sbupdate(ump, MNT_WAIT);
                }
        }
@@ -454,7 +454,7 @@ ffs_reload(struct mount *mp, struct ucred *cred)
        devvp = VFSTOUFS(mp)->um_devvp;
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = vinvalbuf(devvp, 0, 0, 0);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                panic("ffs_reload: dirty1");
 
@@ -607,14 +607,14 @@ ffs_mountfs(struct vnode *devvp, struct mount *mp, struct malloc_type *mtype)
                return (EBUSY);
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = vinvalbuf(devvp, V_SAVE, 0, 0);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return (error);
 
        ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
        vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, NULL);
-       VOP_UNLOCK(devvp, 0);
+       vn_unlock(devvp);
        if (error)
                return (error);
        dev = devvp->v_rdev;
@@ -898,7 +898,7 @@ ffs_flushfiles(struct mount *mp, int flags)
         */
        vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_FSYNC(ump->um_devvp, MNT_WAIT);
-       VOP_UNLOCK(ump->um_devvp, 0);
+       vn_unlock(ump->um_devvp);
        return (error);
 }
 
@@ -978,7 +978,7 @@ ffs_sync(struct mount *mp, int waitfor)
                vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY);
                if ((error = VOP_FSYNC(ump->um_devvp, waitfor)) != 0)
                        scaninfo.allerror = error;
-               VOP_UNLOCK(ump->um_devvp, 0);
+               vn_unlock(ump->um_devvp);
        }
 #ifdef QUOTA
        ufs_qsync(mp);
index 54c42c7..c481611 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)ufs_lookup.c        8.15 (Berkeley) 6/16/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_lookup.c,v 1.33.2.7 2001/09/22 19:22:13 iedowse Exp $
- * $DragonFly: src/sys/vfs/ufs/ufs_lookup.c,v 1.26 2006/05/26 17:07:48 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ufs_lookup.c,v 1.27 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include "opt_ufs.h"
@@ -425,7 +425,7 @@ notfound:
                 * information cannot be used.
                 */
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (EJUSTRETURN);
@@ -484,7 +484,7 @@ found:
                        return (0);
                }
                if (flags & CNP_ISDOTDOT)
-                       VOP_UNLOCK(vdp, 0);     /* race to get the inode */
+                       vn_unlock(vdp); /* race to get the inode */
                error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp);
                if (flags & CNP_ISDOTDOT) {
                        if (vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY) != 0)
@@ -507,7 +507,7 @@ found:
                }
                *vpp = tdp;
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (0);
@@ -529,7 +529,7 @@ found:
                if (dp->i_number == dp->i_ino)
                        return (EISDIR);
                if (flags & CNP_ISDOTDOT)
-                       VOP_UNLOCK(vdp, 0);     /* race to get the inode */
+                       vn_unlock(vdp); /* race to get the inode */
                error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp);
                if (flags & CNP_ISDOTDOT) {
                        if (vn_lock(vdp, LK_EXCLUSIVE | LK_RETRY) != 0)
@@ -539,7 +539,7 @@ found:
                        return (error);
                *vpp = tdp;
                if (!lockparent) {
-                       VOP_UNLOCK(vdp, 0);
+                       vn_unlock(vdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                return (0);
@@ -566,7 +566,7 @@ found:
         */
        pdp = vdp;
        if (flags & CNP_ISDOTDOT) {
-               VOP_UNLOCK(pdp, 0);     /* race to get the inode */
+               vn_unlock(pdp); /* race to get the inode */
                cnp->cn_flags |= CNP_PDIRUNLOCK;
                if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, &tdp)) != 0) {
                        if (vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY) == 0)
@@ -589,7 +589,7 @@ found:
                if (error)
                        return (error);
                if (!lockparent) {
-                       VOP_UNLOCK(pdp, 0);
+                       vn_unlock(pdp);
                        cnp->cn_flags |= CNP_PDIRUNLOCK;
                }
                *vpp = tdp;
@@ -899,7 +899,7 @@ ufs_direnter(struct vnode *dvp, struct vnode *tvp, struct direct *dirp,
         */
        if (error == 0 && dp->i_endoff && dp->i_endoff < dp->i_size) {
                if (tvp != NULL)
-                       VOP_UNLOCK(tvp, 0);
+                       vn_unlock(tvp);
 #ifdef UFS_DIRHASH
                if (dp->i_dirhash != NULL)
                        ufsdirhash_dirtrunc(dp, dp->i_endoff);
index 0e34f0d..fafdfa4 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)ufs_quota.c 8.5 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_quota.c,v 1.27.2.3 2002/01/15 10:33:32 phk Exp $
- * $DragonFly: src/sys/vfs/ufs/ufs_quota.c,v 1.22 2006/05/06 16:20:19 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ufs_quota.c,v 1.23 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -394,7 +394,7 @@ ufs_quotaon(struct ucred *cred, struct mount *mp, int type, caddr_t fname)
        nd.nl_open_vp = NULL;
        nlookup_done(&nd);
 
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (*vpp != vp)
                ufs_quotaoff(mp, type);
        ump->um_qflags[type] |= QTF_OPENING;
@@ -785,7 +785,7 @@ ufs_dqget(struct vnode *vp, u_long id, struct ufsmount *ump, int type,
        if (auio.uio_resid == sizeof(struct ufs_dqblk) && error == 0)
                bzero((caddr_t)&dq->dq_dqb, sizeof(struct ufs_dqblk));
        if (vp != dqvp)
-               VOP_UNLOCK(dqvp, 0);
+               vn_unlock(dqvp);
        if (dq->dq_flags & DQ_WANT)
                wakeup((caddr_t)dq);
        dq->dq_flags = 0;
@@ -870,7 +870,7 @@ ufs_dqsync(struct vnode *vp, struct ufs_dquot *dq)
                (void) tsleep((caddr_t)dq, 0, "dqsync", 0);
                if ((dq->dq_flags & DQ_MOD) == 0) {
                        if (vp != dqvp)
-                               VOP_UNLOCK(dqvp, 0);
+                               vn_unlock(dqvp);
                        return (0);
                }
        }
@@ -891,7 +891,7 @@ ufs_dqsync(struct vnode *vp, struct ufs_dquot *dq)
                wakeup((caddr_t)dq);
        dq->dq_flags &= ~(DQ_MOD|DQ_LOCK|DQ_WANT);
        if (vp != dqvp)
-               VOP_UNLOCK(dqvp, 0);
+               vn_unlock(dqvp);
        return (error);
 }
 
index b561f7b..57d915b 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_vnops.c,v 1.131.2.8 2003/01/02 17:26:19 bde Exp $
- * $DragonFly: src/sys/vfs/ufs/ufs_vnops.c,v 1.53 2006/07/19 06:08:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ufs_vnops.c,v 1.54 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -777,7 +777,7 @@ ufs_link(struct vop_old_link_args *ap)
        }
 out1:
        if (tdvp != vp)
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
 out2:
        VN_KNOTE(vp, NOTE_LINK);
        VN_KNOTE(tdvp, NOTE_WRITE);
@@ -923,13 +923,13 @@ abortit:
        dp = VTOI(fdvp);
        ip = VTOI(fvp);
        if (ip->i_nlink >= LINK_MAX) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                error = EMLINK;
                goto abortit;
        }
        if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND))
            || (dp->i_flags & APPEND)) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                error = EPERM;
                goto abortit;
        }
@@ -940,7 +940,7 @@ abortit:
                if ((fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.') ||
                    dp == ip || (fcnp->cn_flags | tcnp->cn_flags) & CNP_ISDOTDOT ||
                    (ip->i_flag & IN_RENAME)) {
-                       VOP_UNLOCK(fvp, 0);
+                       vn_unlock(fvp);
                        error = EINVAL;
                        goto abortit;
                }
@@ -977,7 +977,7 @@ abortit:
                softdep_change_linkcnt(ip);
        if ((error = ffs_update(fvp, !(DOINGSOFTDEP(fvp) |
                                       DOINGASYNC(fvp)))) != 0) {
-               VOP_UNLOCK(fvp, 0);
+               vn_unlock(fvp);
                goto bad;
        }
 
@@ -992,7 +992,7 @@ abortit:
         * call to checkpath().
         */
        error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred);
-       VOP_UNLOCK(fvp, 0);
+       vn_unlock(fvp);
 
        /*
         * We are now back to where we were in that fvp, fdvp are unlocked
@@ -2378,9 +2378,7 @@ static struct vop_ops ufs_vnode_vops = {
        .vop_old_create =       ufs_create,
        .vop_getattr =          ufs_getattr,
        .vop_inactive =         ufs_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         ufs_link,
-       .vop_lock =             vop_stdlock,
        .vop_old_mkdir =                ufs_mkdir,
        .vop_old_mknod =                ufs_mknod,
        .vop_mmap =             ufs_mmap,
@@ -2398,7 +2396,6 @@ static struct vop_ops ufs_vnode_vops = {
        .vop_setattr =          ufs_setattr,
        .vop_strategy =         ufs_strategy,
        .vop_old_symlink =      ufs_symlink,
-       .vop_unlock =           vop_stdunlock,
        .vop_old_whiteout =     ufs_whiteout
 };
 
@@ -2409,13 +2406,10 @@ static struct vop_ops ufs_spec_vops = {
        .vop_close =            ufsspec_close,
        .vop_getattr =          ufs_getattr,
        .vop_inactive =         ufs_inactive,
-       .vop_islocked =         vop_stdislocked,
-       .vop_lock =             vop_stdlock,
        .vop_print =            ufs_print,
        .vop_read =             ufsspec_read,
        .vop_reclaim =          ufs_reclaim,
        .vop_setattr =          ufs_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            ufsspec_write
 };
 
@@ -2426,14 +2420,11 @@ static struct vop_ops ufs_fifo_vops = {
        .vop_close =            ufsfifo_close,
        .vop_getattr =          ufs_getattr,
        .vop_inactive =         ufs_inactive,
-       .vop_islocked =         vop_stdislocked,
        .vop_kqfilter =         ufsfifo_kqfilter,
-       .vop_lock =             vop_stdlock,
        .vop_print =            ufs_print,
        .vop_read =             ufsfifo_read,
        .vop_reclaim =          ufs_reclaim,
        .vop_setattr =          ufs_setattr,
-       .vop_unlock =           vop_stdunlock,
        .vop_write =            ufsfifo_write
 };
 
index 77f41a9..3146a9c 100644 (file)
@@ -36,7 +36,7 @@
  *
  *     @(#)union_subr.c        8.20 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/miscfs/union/union_subr.c,v 1.43.2.2 2001/12/25 01:44:45 dillon Exp $
- * $DragonFly: src/sys/vfs/union/union_subr.c,v 1.25 2006/06/01 06:10:58 dillon Exp $
+ * $DragonFly: src/sys/vfs/union/union_subr.c,v 1.26 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -431,7 +431,7 @@ loop:
                                 * while moving up the tree).
                                 */
                                vref(dvp);
-                               VOP_UNLOCK(dvp, 0);
+                               vn_unlock(dvp);
                                error = vn_lock(un->un_vnode, LK_EXCLUSIVE);
                                vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
                                vrele(dvp);
@@ -726,7 +726,7 @@ union_copyup(struct union_node *un, int docopy, struct ucred *cred,
         */
        vn_lock(un->un_lowervp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_ACCESS(un->un_lowervp, VREAD, cred);
-       VOP_UNLOCK(un->un_lowervp, 0);
+       vn_unlock(un->un_lowervp);
        if (error)
                return (error);
 
@@ -746,14 +746,14 @@ union_copyup(struct union_node *un, int docopy, struct ucred *cred,
                error = VOP_OPEN(lvp, FREAD, cred, NULL);
                if (error == 0) {
                        error = union_copyfile(lvp, uvp, cred, td);
-                       VOP_UNLOCK(lvp, 0);
+                       vn_unlock(lvp);
                        (void) VOP_CLOSE(lvp, FREAD);
                }
                if (error == 0)
                        UDEBUG(("union: copied up %s\n", un->un_path));
 
        }
-       VOP_UNLOCK(uvp, 0);
+       vn_unlock(uvp);
        union_newupper(un, uvp);
        KASSERT(uvp->v_usecount > 0, ("copy: uvp refcount 0: %d", uvp->v_usecount));
        union_vn_close(uvp, FWRITE, cred);
@@ -822,7 +822,7 @@ union_relookup(struct union_mount *um, struct vnode *dvp, struct vnode **vpp,
        cn->cn_consume = cnp->cn_consume;
 
        vref(dvp);
-       VOP_UNLOCK(dvp, 0);
+       vn_unlock(dvp);
 
        /*
         * Pass dvp unlocked and referenced on call to relookup().
@@ -1173,7 +1173,7 @@ union_dircache(struct vnode *vp, struct thread *td)
        un->un_dircache = dircache;
 
 out:
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        return (nvp);
 }
 
@@ -1243,7 +1243,7 @@ union_dircheck(struct thread *td, struct vnode **vp, struct file *fp)
                                vput(lvp);
                                return (error);
                        }
-                       VOP_UNLOCK(lvp, 0);
+                       vn_unlock(lvp);
                        fp->f_data = lvp;
                        fp->f_offset = 0;
                        error = vn_close(*vp, FREAD);
index 84e1bf2..4cb7b5b 100644 (file)
@@ -36,7 +36,7 @@
  *
  *     @(#)union_vfsops.c      8.20 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/miscfs/union/union_vfsops.c,v 1.39.2.2 2001/10/25 19:18:53 dillon Exp $
- * $DragonFly: src/sys/vfs/union/union_vfsops.c,v 1.24 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vfs/union/union_vfsops.c,v 1.25 2006/08/12 00:26:22 dillon Exp $
  */
 
 /*
@@ -125,7 +125,7 @@ union_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
         * Unlock lower node to avoid deadlock.
         */
        if (lowerrootvp->v_tag == VT_UNION)
-               VOP_UNLOCK(lowerrootvp, 0);
+               vn_unlock(lowerrootvp);
 #endif
 
        /*
@@ -142,7 +142,7 @@ union_mount(struct mount *mp, char *path, caddr_t data, struct ucred *cred)
                goto bad;
 
        UDEBUG(("mount_root UPPERVP %p locked = %d\n", upperrootvp,
-           VOP_ISLOCKED(upperrootvp, NULL)));
+           vn_islocked(upperrootvp)));
 
        /*
         * Check multi union mount to avoid `lock myself again' panic.
@@ -364,7 +364,7 @@ union_root(struct mount *mp, struct vnode **vpp)
         * it.
         */
        UDEBUG(("union_root UPPERVP %p locked = %d\n", um->um_uppervp,
-           VOP_ISLOCKED(um->um_uppervp, NULL)));
+           vn_islocked(um->um_uppervp)));
 
        vref(um->um_uppervp);
        if (um->um_lowervp)
@@ -374,7 +374,7 @@ union_root(struct mount *mp, struct vnode **vpp)
                    um->um_uppervp, um->um_lowervp, 1);
        UDEBUG(("error %d\n", error));
        UDEBUG(("union_root2 UPPERVP %p locked = %d\n", um->um_uppervp,
-           VOP_ISLOCKED(um->um_uppervp, NULL)));
+           vn_islocked(um->um_uppervp)));
 
        return (error);
 }
index d311bd2..5d9c696 100644 (file)
@@ -36,7 +36,7 @@
  *
  *     @(#)union_vnops.c       8.32 (Berkeley) 6/23/95
  * $FreeBSD: src/sys/miscfs/union/union_vnops.c,v 1.72 1999/12/15 23:02:14 eivind Exp $
- * $DragonFly: src/sys/vfs/union/union_vnops.c,v 1.32 2006/08/11 01:55:02 dillon Exp $
+ * $DragonFly: src/sys/vfs/union/union_vnops.c,v 1.33 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -78,7 +78,6 @@ static int    union_getattr (struct vop_getattr_args *ap);
 static int     union_inactive (struct vop_inactive_args *ap);
 static int     union_ioctl (struct vop_ioctl_args *ap);
 static int     union_link (struct vop_old_link_args *ap);
-static int     union_lock (struct vop_lock_args *ap);
 static int     union_lookup (struct vop_old_lookup_args *ap);
 static int     union_lookup1 (struct vnode *udvp, struct vnode **dvp,
                                   struct vnode **vpp,
@@ -103,7 +102,6 @@ static int  union_strategy (struct vop_strategy_args *ap);
 static int     union_getpages (struct vop_getpages_args *ap);
 static int     union_putpages (struct vop_putpages_args *ap);
 static int     union_symlink (struct vop_old_symlink_args *ap);
-static int     union_unlock (struct vop_unlock_args *ap);
 static int     union_whiteout (struct vop_old_whiteout_args *ap);
 static int     union_write (struct vop_read_args *ap);
 
@@ -358,10 +356,10 @@ union_lookup(struct vop_old_lookup_args *ap)
                    uerror,
                    upperdvp,
                    upperdvp->v_usecount,
-                   VOP_ISLOCKED(upperdvp, NULL),
+                   vn_islocked(upperdvp),
                    uppervp,
                    (uppervp ? uppervp->v_usecount : -99),
-                   (uppervp ? VOP_ISLOCKED(uppervp, NULL) : -99)
+                   (uppervp ? vn_islocked(uppervp) : -99)
                ));
 
                /*
@@ -528,11 +526,11 @@ union_lookup(struct vop_old_lookup_args *ap)
         */
 
        if (uppervp && uppervp != upperdvp)
-               VOP_UNLOCK(uppervp, 0);
+               vn_unlock(uppervp);
        if (lowervp)
-               VOP_UNLOCK(lowervp, 0);
+               vn_unlock(lowervp);
        if (upperdvp)
-               VOP_UNLOCK(upperdvp, 0);
+               vn_unlock(upperdvp);
 
        error = union_allocvp(ap->a_vpp, dvp->v_mount, dvp, upperdvp, cnp,
                              uppervp, lowervp, 1);
@@ -594,7 +592,7 @@ out:
 
        if (*ap->a_vpp != dvp) {
                if ((error == 0 || error == EJUSTRETURN) && !lockparent) {
-                       VOP_UNLOCK(dvp, 0);
+                       vn_unlock(dvp);
                }
        }
 
@@ -638,7 +636,7 @@ union_create(struct vop_old_create_args *ap)
                error = VOP_CREATE(dvp, &vp, cnp, ap->a_vap);
                if (error == 0) {
                        mp = ap->a_dvp->v_mount;
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        UDEBUG(("ALLOCVP-1 FROM %p REFS %d\n", vp, vp->v_usecount));
                        error = union_allocvp(ap->a_vpp, mp, NULLVP, NULLVP,
                                cnp, vp, NULLVP, 1);
@@ -855,7 +853,7 @@ union_access(struct vop_access_args *ap)
                                error = vop_access_ap(ap);
                        }
                }
-               VOP_UNLOCK(vp, 0);
+               vn_unlock(vp);
        }
        return(error);
 }
@@ -1258,7 +1256,7 @@ union_link(struct vop_old_link_args *ap)
                        if (dun->un_uppervp == tun->un_dirvp) {
                                if (dun->un_flags & UN_ULOCK) {
                                        dun->un_flags &= ~UN_ULOCK;
-                                       VOP_UNLOCK(dun->un_uppervp, 0);
+                                       vn_unlock(dun->un_uppervp);
                                }
                        }
 #endif
@@ -1270,7 +1268,7 @@ union_link(struct vop_old_link_args *ap)
                                dun->un_flags |= UN_ULOCK;
                        }
 #endif
-                       VOP_UNLOCK(ap->a_vp, 0);
+                       vn_unlock(ap->a_vp);
                }
                vp = tun->un_uppervp;
        }
@@ -1288,7 +1286,7 @@ union_link(struct vop_old_link_args *ap)
        if ((tdvp = union_lock_upper(dun, td)) == NULLVP)
                return (EROFS);
 
-       VOP_UNLOCK(ap->a_tdvp, 0);      /* unlock calling node */
+       vn_unlock(ap->a_tdvp);  /* unlock calling node */
        error = VOP_LINK(tdvp, vp, cnp); /* call link on upper */
 
        /*
@@ -1352,7 +1350,7 @@ union_rename(struct vop_old_rename_args *ap)
                        case VREG:
                                vn_lock(un->un_vnode, LK_EXCLUSIVE | LK_RETRY);
                                error = union_copyup(un, 1, ap->a_fcnp->cn_cred, ap->a_fcnp->cn_td);
-                               VOP_UNLOCK(un->un_vnode, 0);
+                               vn_unlock(un->un_vnode);
                                if (error)
                                        goto bad;
                                break;
@@ -1371,9 +1369,9 @@ union_rename(struct vop_old_rename_args *ap)
                                vn_lock(fdvp, LK_EXCLUSIVE | LK_RETRY);
                                error = union_mkshadow(um, fdvp, 
                                            ap->a_fcnp, &un->un_uppervp);
-                               VOP_UNLOCK(fdvp, 0);
+                               vn_unlock(fdvp);
                                if (un->un_uppervp)
-                                       VOP_UNLOCK(un->un_uppervp, 0);
+                                       vn_unlock(un->un_uppervp);
                                if (error)
                                        goto bad;
                                break;
@@ -1482,7 +1480,7 @@ union_mkdir(struct vop_old_mkdir_args *ap)
                union_unlock_upper(upperdvp, td);
 
                if (error == 0) {
-                       VOP_UNLOCK(vp, 0);
+                       vn_unlock(vp);
                        UDEBUG(("ALLOCVP-2 FROM %p REFS %d\n", vp, vp->v_usecount));
                        error = union_allocvp(ap->a_vpp, ap->a_dvp->v_mount,
                                ap->a_dvp, NULLVP, cnp, vp, NULLVP, 1);
@@ -1639,7 +1637,7 @@ union_inactive(struct vop_inactive_args *ap)
 #if 0
        if ((un->un_flags & UN_ULOCK) && un->un_uppervp) {
                un->un_flags &= ~UN_ULOCK;
-               VOP_UNLOCK(un->un_uppervp, 0);
+               vn_unlock(un->un_uppervp);
        }
 #endif
 
@@ -1660,79 +1658,6 @@ union_reclaim(struct vop_reclaim_args *ap)
        return (0);
 }
 
-static int
-union_lock(struct vop_lock_args *ap)
-{
-#if 0
-       struct vnode *vp = ap->a_vp;
-       struct thread *td = ap->a_td;
-       int flags = ap->a_flags;
-       struct union_node *un;
-#endif
-       int error;
-
-       error = vop_stdlock(ap);
-#if 0
-       un = VTOUNION(vp);
-
-       if (error == 0) {
-               /*
-                * Lock the upper if it exists and this is an exclusive lock
-                * request.
-                */
-               if (un->un_uppervp != NULLVP && 
-                   (flags & LK_TYPE_MASK) == LK_EXCLUSIVE) {
-                       if ((un->un_flags & UN_ULOCK) == 0 && vp->v_usecount) {
-                               error = vn_lock(un->un_uppervp, flags);
-                               if (error) {
-                                       struct vop_unlock_args uap = { 0 };
-                                       uap.a_vp = ap->a_vp;
-                                       uap.a_flags = ap->a_flags;
-                                       vop_stdunlock(&uap);
-                                       return (error);
-                               }
-                               un->un_flags |= UN_ULOCK;
-                       }
-               }
-       }
-#endif
-       return (error);
-}
-
-/*
- *     union_unlock:
- *
- *     Unlock our union node.  This also unlocks uppervp.  
- *
- * union_unlock(struct vnode *a_vp, int a_flags, struct thread *a_td)
- */
-static int
-union_unlock(struct vop_unlock_args *ap)
-{
-       int error;
-#if 0
-       struct union_node *un = VTOUNION(ap->a_vp);
-
-       KASSERT((un->un_uppervp == NULL || un->un_uppervp->v_usecount > 0), ("uppervp usecount is 0"));
-#endif
-
-       error = vop_stdunlock(ap);
-#if 0
-
-       /*
-        * If no exclusive locks remain and we are holding an uppervp lock,
-        * remove the uppervp lock.
-        */
-
-       if ((un->un_flags & UN_ULOCK) && 
-           lockstatus(&un->un_lock, NULL) != LK_EXCLUSIVE) {
-               un->un_flags &= ~UN_ULOCK;
-               VOP_UNLOCK(un->un_uppervp, LK_EXCLUSIVE);
-       }
-#endif
-       return(error);
-}
-
 /*
  *     union_bmap:
  *
@@ -1848,9 +1773,7 @@ struct vop_ops union_vnode_vops = {
        .vop_getattr =          union_getattr,
        .vop_inactive =         union_inactive,
        .vop_ioctl =            union_ioctl,
-       .vop_islocked =         vop_stdislocked,
        .vop_old_link =         union_link,
-       .vop_lock =             union_lock,
        .vop_old_lookup =       union_lookup,
        .vop_old_mkdir =        union_mkdir,
        .vop_old_mknod =        union_mknod,
@@ -1870,7 +1793,6 @@ struct vop_ops union_vnode_vops = {
        .vop_setattr =          union_setattr,
        .vop_strategy =         union_strategy,
        .vop_old_symlink =      union_symlink,
-       .vop_unlock =           union_unlock,
        .vop_old_whiteout =     union_whiteout,
        .vop_write =            union_write
 };
index 724f278..d4b0e4f 100644 (file)
@@ -64,7 +64,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)vm_page.c     7.4 (Berkeley) 5/7/91
- * $DragonFly: src/sys/vm/vm_contig.c,v 1.16 2006/05/05 21:15:11 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_contig.c,v 1.17 2006/08/12 00:26:22 dillon Exp $
  */
 
 /*
@@ -159,7 +159,7 @@ vm_contig_pg_clean(int queue)
                        if (object->type == OBJT_VNODE) {
                                vn_lock(object->handle, LK_EXCLUSIVE|LK_RETRY);
                                vm_object_page_clean(object, 0, 0, OBJPC_SYNC);
-                               VOP_UNLOCK(((struct vnode *)object->handle), 0);
+                               vn_unlock(((struct vnode *)object->handle));
                                return (TRUE);
                        } else if (object->type == OBJT_SWAP ||
                                        object->type == OBJT_DEFAULT) {
index e9c6232..79ca1ec 100644 (file)
@@ -62,7 +62,7 @@
  * rights to redistribute these changes.
  *
  * $FreeBSD: src/sys/vm/vm_map.c,v 1.187.2.19 2003/05/27 00:47:02 alc Exp $
- * $DragonFly: src/sys/vm/vm_map.c,v 1.45 2006/08/08 03:52:45 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_map.c,v 1.46 2006/08/12 00:26:22 dillon Exp $
  */
 
 /*
@@ -2215,7 +2215,7 @@ vm_map_clean(vm_map_t map, vm_offset_t start, vm_offset_t end, boolean_t syncio,
                            OFF_TO_IDX(offset),
                            OFF_TO_IDX(offset + size + PAGE_MASK),
                            flags);
-                       VOP_UNLOCK(((struct vnode *)object->handle), 0);
+                       vn_unlock(((struct vnode *)object->handle));
                        vm_object_deallocate(object);
                }
                if (object && invalidate &&
index 91e77f0..cf953d8 100644 (file)
@@ -66,7 +66,7 @@
  * rights to redistribute these changes.
  *
  * $FreeBSD: src/sys/vm/vm_pageout.c,v 1.151.2.15 2002/12/29 18:21:04 dillon Exp $
- * $DragonFly: src/sys/vm/vm_pageout.c,v 1.23 2006/05/25 07:36:37 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_pageout.c,v 1.24 2006/08/12 00:26:22 dillon Exp $
  */
 
 /*
@@ -626,11 +626,10 @@ vm_pageout_map_deactivate_pages(vm_map_t map, vm_pindex_t desired)
 #endif
 
 /*
- * Don't try to be fancy - being fancy can lead to VOP_LOCK's and therefore
- * to vnode deadlocks.  We only do it for OBJT_DEFAULT and OBJT_SWAP objects
- * which we know can be trivially freed.
+ * Don't try to be fancy - being fancy can lead to vnode deadlocks.   We
+ * only do it for OBJT_DEFAULT and OBJT_SWAP objects which we know can
+ * be trivially freed.
  */
-
 void
 vm_pageout_page_free(vm_page_t m) {
        vm_object_t object = m->object;
index 03d923d..d608d27 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)vm_swap.c   8.5 (Berkeley) 2/17/94
  * $FreeBSD: src/sys/vm/vm_swap.c,v 1.96.2.2 2001/10/14 18:46:47 iedowse Exp $
- * $DragonFly: src/sys/vm/vm_swap.c,v 1.27 2006/07/18 22:22:16 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_swap.c,v 1.28 2006/08/12 00:26:22 dillon Exp $
  */
 
 #include "opt_swap.h"
@@ -249,7 +249,6 @@ swaponvp(struct thread *td, struct vnode *vp, u_long nblks)
                vx_unlock(swapdev_vp);
        }
 
-       ASSERT_VOP_UNLOCKED(vp, "swaponvp");
        for (sp = swdevt, index = 0 ; index < nswdev; index++, sp++) {
                if (sp->sw_vp == vp)
                        return EBUSY;
@@ -261,7 +260,7 @@ swaponvp(struct thread *td, struct vnode *vp, u_long nblks)
     found:
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        error = VOP_OPEN(vp, FREAD | FWRITE, cred, NULL);
-       VOP_UNLOCK(vp, 0);
+       vn_unlock(vp);
        if (error)
                return (error);