summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-12-20 21:34:29 +0000
committerphk <phk@FreeBSD.org>2004-12-20 21:34:29 +0000
commit0faeb292ed219df549f255578f74531a32900d18 (patch)
tree534a79228eee167b3db8dd15e6b5ea9081347a89
parentdf11d2eb83f7dcf3b44c379cc5c563460d8b7046 (diff)
downloadFreeBSD-src-0faeb292ed219df549f255578f74531a32900d18.zip
FreeBSD-src-0faeb292ed219df549f255578f74531a32900d18.tar.gz
We can only ever get to vgonechrl() from a devfs vnode, so we do not
need to reassign the vp->v_op to devfs_specops, we know that is the value already. Make devfs_specops private to devfs.
-rw-r--r--sys/fs/devfs/devfs_vnops.c3
-rw-r--r--sys/kern/vfs_subr.c2
-rw-r--r--sys/sys/vnode.h1
3 files changed, 2 insertions, 4 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index e0f578f..2ffaa13 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -111,6 +111,7 @@ static vop_setlabel_t devfs_setlabel;
static vop_symlink_t devfs_symlink;
extern struct vop_vector devfs_vnodeops;
+extern struct vop_vector devfs_specops;
static int
devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp)
@@ -1401,7 +1402,7 @@ static struct vop_vector devfs_vnodeops = {
.vop_symlink = devfs_symlink,
};
-struct vop_vector devfs_specops = {
+static struct vop_vector devfs_specops = {
.vop_default = &default_vnodeops,
.vop_access = devfs_access,
.vop_advlock = devfs_advlock,
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 8323091..e67d861 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -2397,14 +2397,12 @@ vgonechrl(struct vnode *vp, struct thread *td)
VOP_UNLOCK(vp, 0, td);
vp->v_vnlock = &vp->v_lock;
vp->v_tag = "orphanchr";
- vp->v_op = &devfs_specops;
delmntque(vp);
cache_purge(vp);
vrele(vp);
VI_LOCK(vp);
} else
vclean(vp, 0, td);
- vp->v_op = &devfs_specops;
vx_unlock(vp);
VI_UNLOCK(vp);
}
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h
index 55adee7..31156f6 100644
--- a/sys/sys/vnode.h
+++ b/sys/sys/vnode.h
@@ -684,7 +684,6 @@ void vbusy(struct vnode *vp);
void v_addpollinfo(struct vnode *vp);
-extern struct vop_vector devfs_specops;
extern struct vop_vector fifo_specops;
extern struct vop_vector dead_vnodeops;
extern struct vop_vector default_vnodeops;
OpenPOWER on IntegriCloud