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)
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to