diff options
author | phk <phk@FreeBSD.org> | 2004-12-20 21:34:29 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-12-20 21:34:29 +0000 |
commit | 0faeb292ed219df549f255578f74531a32900d18 (patch) | |
tree | 534a79228eee167b3db8dd15e6b5ea9081347a89 | |
parent | df11d2eb83f7dcf3b44c379cc5c563460d8b7046 (diff) | |
download | FreeBSD-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.c | 3 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 2 | ||||
-rw-r--r-- | sys/sys/vnode.h | 1 |
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; |