From 6e572e084b5c55e2e12b87e97157ff3e0975d65d Mon Sep 17 00:00:00 2001 From: Edward Tomasz Napierala Date: Sun, 23 Aug 2015 14:53:54 +0000 Subject: [PATCH] After r286237 it should be fine to call vgone(9) on a busy GEOM vnode; remove KASSERT that would prevent forced devfs unmount from working. MFC after: 1 month Sponsored by: The FreeBSD Foundation --- sys/fs/devfs/devfs_vnops.c | 3 ++- sys/kern/vfs_subr.c | 4 ---- sys/sys/vnode.h | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 806843769a1..d27af465432 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -65,6 +65,7 @@ #include static struct vop_vector devfs_vnodeops; +static struct vop_vector devfs_specops; static struct fileops devfs_ops_f; #include @@ -1862,7 +1863,7 @@ static struct vop_vector devfs_vnodeops = { .vop_vptocnp = devfs_vptocnp, }; -struct vop_vector devfs_specops = { +static struct vop_vector devfs_specops = { .vop_default = &default_vnodeops, .vop_access = devfs_access, diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 3c189d1a2df..262a3a69cb0 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -2709,10 +2709,6 @@ loop: * If FORCECLOSE is set, forcibly close the vnode. */ if (vp->v_usecount == 0 || (flags & FORCECLOSE)) { - VNASSERT(vp->v_usecount == 0 || - vp->v_op != &devfs_specops || - (vp->v_type != VCHR && vp->v_type != VBLK), vp, - ("device VNODE %p is FORCECLOSED", vp)); vgonel(vp); } else { busy++; diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 41b610b5bd5..9a8f8e99bc7 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -827,7 +827,6 @@ void vnode_destroy_vobject(struct vnode *vp); extern struct vop_vector fifo_specops; extern struct vop_vector dead_vnodeops; extern struct vop_vector default_vnodeops; -extern struct vop_vector devfs_specops; #define VOP_PANIC ((void*)(uintptr_t)vop_panic) #define VOP_NULL ((void*)(uintptr_t)vop_null)