diff options
| author | hannken <hannken@NetBSD.org> | 2010-07-09 08:10:50 +0000 |
|---|---|---|
| committer | hannken <hannken@NetBSD.org> | 2010-07-09 08:10:50 +0000 |
| commit | 7296ba383a0848ff0f4e6f5b4bed749e1241b4e8 (patch) | |
| tree | bf37fff58f75f40b2138a75195c5c0c791e9a427 | |
| parent | 3cc3be4df9d4fbfa4c7205915565a35898ad3cb3 (diff) | |
Replace vget() with vref()/vn_lock(), this node already has a reference.
| -rw-r--r-- | sys/fs/smbfs/smbfs_node.c | 9 | ||||
| -rw-r--r-- | sys/fs/smbfs/smbfs_vfsops.c | 13 | ||||
| -rw-r--r-- | sys/miscfs/overlay/overlay_vfsops.c | 9 | ||||
| -rw-r--r-- | sys/rump/librump/rumpvfs/rumpfs.c | 7 | ||||
| -rw-r--r-- | sys/uvm/uvm_swap.c | 8 |
5 files changed, 30 insertions, 16 deletions
diff --git a/sys/fs/smbfs/smbfs_node.c b/sys/fs/smbfs/smbfs_node.c index 7fff5bfaee9..4ddcb572249 100644 --- a/sys/fs/smbfs/smbfs_node.c +++ b/sys/fs/smbfs/smbfs_node.c @@ -1,4 +1,4 @@ -/* $NetBSD: smbfs_node.c,v 1.43 2010/06/24 13:03:10 hannken Exp $ */ +/* $NetBSD: smbfs_node.c,v 1.44 2010/07/09 08:16:28 hannken Exp $ */ /* * Copyright (c) 2000-2001 Boris Popov @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.43 2010/06/24 13:03:10 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.44 2010/07/09 08:16:28 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -112,8 +112,11 @@ smbfs_node_alloc(struct mount *mp, struct vnode *dvp, if (dvp == NULL) return EINVAL; vp = VTOSMB(VTOSMB(dvp)->n_parent)->n_vnode; - if ((error = vget(vp, LK_EXCLUSIVE | LK_RETRY)) == 0) + vref(vp); + if ((error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY)) == 0) *vpp = vp; + else + vrele(vp); return (error); } diff --git a/sys/fs/smbfs/smbfs_vfsops.c b/sys/fs/smbfs/smbfs_vfsops.c index f400bb3087c..710d3c9bc3e 100644 --- a/sys/fs/smbfs/smbfs_vfsops.c +++ b/sys/fs/smbfs/smbfs_vfsops.c @@ -1,4 +1,4 @@ -/* $NetBSD: smbfs_vfsops.c,v 1.91 2010/06/24 13:03:10 hannken Exp $ */ +/* $NetBSD: smbfs_vfsops.c,v 1.92 2010/07/09 08:16:28 hannken Exp $ */ /* * Copyright (c) 2000-2001, Boris Popov @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.91 2010/06/24 13:03:10 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.92 2010/07/09 08:16:28 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -322,9 +322,10 @@ int smbfs_root(struct mount *mp, struct vnode **vpp) { struct smbmount *smp = VFSTOSMBFS(mp); + int error; if (__predict_false(!smp->sm_root)) { - int error = smbfs_setroot(mp); + error = smbfs_setroot(mp); if (error) return (error); /* fallthrough */ @@ -332,7 +333,11 @@ smbfs_root(struct mount *mp, struct vnode **vpp) KASSERT(smp->sm_root != NULL && SMBTOV(smp->sm_root) != NULL); *vpp = SMBTOV(smp->sm_root); - return vget(*vpp, LK_EXCLUSIVE | LK_RETRY); + vref(*vpp); + error = vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); + if (error) + vrele(*vpp); + return error; } /* diff --git a/sys/miscfs/overlay/overlay_vfsops.c b/sys/miscfs/overlay/overlay_vfsops.c index 6ef545386d9..ce9d8848286 100644 --- a/sys/miscfs/overlay/overlay_vfsops.c +++ b/sys/miscfs/overlay/overlay_vfsops.c @@ -1,4 +1,4 @@ -/* $NetBSD: overlay_vfsops.c,v 1.55 2010/06/24 13:03:17 hannken Exp $ */ +/* $NetBSD: overlay_vfsops.c,v 1.56 2010/07/09 08:14:26 hannken Exp $ */ /* * Copyright (c) 1999, 2000 National Aeronautics & Space Administration @@ -74,7 +74,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: overlay_vfsops.c,v 1.55 2010/06/24 13:03:17 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: overlay_vfsops.c,v 1.56 2010/07/09 08:14:26 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -136,8 +136,11 @@ ov_mount(struct mount *mp, const char *path, void *data, size_t *data_len) * Find lower node */ lowerrootvp = mp->mnt_vnodecovered; - if ((error = vget(lowerrootvp, LK_EXCLUSIVE | LK_RETRY))) + vref(lowerrootvp); + if ((error = vn_lock(lowerrootvp, LK_EXCLUSIVE | LK_RETRY))) { + vrele(lowerrootvp); return (error); + } /* * First cut at fixing up upper mount point diff --git a/sys/rump/librump/rumpvfs/rumpfs.c b/sys/rump/librump/rumpvfs/rumpfs.c index fdc46cd1d22..d2b95eb8fa2 100644 --- a/sys/rump/librump/rumpvfs/rumpfs.c +++ b/sys/rump/librump/rumpvfs/rumpfs.c @@ -1,4 +1,4 @@ -/* $NetBSD: rumpfs.c,v 1.60 2010/07/03 10:55:47 pooka Exp $ */ +/* $NetBSD: rumpfs.c,v 1.61 2010/07/09 08:10:50 hannken Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.60 2010/07/03 10:55:47 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.61 2010/07/09 08:10:50 hannken Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -1207,7 +1207,8 @@ rumpfs_root(struct mount *mp, struct vnode **vpp) { struct rumpfs_mount *rfsmp = mp->mnt_data; - vget(rfsmp->rfsmp_rvp, LK_EXCLUSIVE | LK_RETRY); + vref(rfsmp->rfsmp_rvp); + vn_lock(rfsmp->rfsmp_rvp, LK_EXCLUSIVE | LK_RETRY); *vpp = rfsmp->rfsmp_rvp; return 0; } diff --git a/sys/uvm/uvm_swap.c b/sys/uvm/uvm_swap.c index 3507a8cc49a..2093cbbace2 100644 --- a/sys/uvm/uvm_swap.c +++ b/sys/uvm/uvm_swap.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_swap.c,v 1.151 2010/06/24 13:03:20 hannken Exp $ */ +/* $NetBSD: uvm_swap.c,v 1.152 2010/07/09 08:13:33 hannken Exp $ */ /* * Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.151 2010/06/24 13:03:20 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.152 2010/07/09 08:13:33 hannken Exp $"); #include "opt_uvmhist.h" #include "opt_compat_netbsd.h" @@ -552,7 +552,9 @@ sys_swapctl(struct lwp *l, const struct sys_swapctl_args *uap, register_t *retva */ if (SCARG(uap, arg) == NULL) { vp = rootvp; /* miniroot */ - if (vget(vp, LK_EXCLUSIVE)) { + vref(vp); + if (vn_lock(vp, LK_EXCLUSIVE)) { + vrele(vp); error = EBUSY; goto out; } |
