svn commit: r287033 - in head/sys: fs/devfs kern sys
Edward Tomasz Napierala
trasz at FreeBSD.org
Sun Aug 23 14:53:56 UTC 2015
Author: trasz
Date: Sun Aug 23 14:53:54 2015
New Revision: 287033
URL: https://svnweb.freebsd.org/changeset/base/287033
Log:
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
Modified:
head/sys/fs/devfs/devfs_vnops.c
head/sys/kern/vfs_subr.c
head/sys/sys/vnode.h
Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c Sun Aug 23 13:51:06 2015 (r287032)
+++ head/sys/fs/devfs/devfs_vnops.c Sun Aug 23 14:53:54 2015 (r287033)
@@ -65,6 +65,7 @@
#include <sys/vnode.h>
static struct vop_vector devfs_vnodeops;
+static struct vop_vector devfs_specops;
static struct fileops devfs_ops_f;
#include <fs/devfs/devfs.h>
@@ -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,
Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c Sun Aug 23 13:51:06 2015 (r287032)
+++ head/sys/kern/vfs_subr.c Sun Aug 23 14:53:54 2015 (r287033)
@@ -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++;
Modified: head/sys/sys/vnode.h
==============================================================================
--- head/sys/sys/vnode.h Sun Aug 23 13:51:06 2015 (r287032)
+++ head/sys/sys/vnode.h Sun Aug 23 14:53:54 2015 (r287033)
@@ -827,7 +827,6 @@ void vnode_destroy_vobject(struct vnode
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)
More information about the svn-src-head
mailing list