Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 2015 14:41:38 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r289513 - in stable/10/sys: fs/devfs kern sys
Message-ID:  <201510181441.t9IEfcnH096271@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Sun Oct 18 14:41:38 2015
New Revision: 289513
URL: https://svnweb.freebsd.org/changeset/base/289513

Log:
  MFC r287033:
  
  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.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/sys/fs/devfs/devfs_vnops.c
  stable/10/sys/kern/vfs_subr.c
  stable/10/sys/sys/vnode.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- stable/10/sys/fs/devfs/devfs_vnops.c	Sun Oct 18 14:36:04 2015	(r289512)
+++ stable/10/sys/fs/devfs/devfs_vnops.c	Sun Oct 18 14:41:38 2015	(r289513)
@@ -64,6 +64,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>
@@ -1763,7 +1764,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: stable/10/sys/kern/vfs_subr.c
==============================================================================
--- stable/10/sys/kern/vfs_subr.c	Sun Oct 18 14:36:04 2015	(r289512)
+++ stable/10/sys/kern/vfs_subr.c	Sun Oct 18 14:41:38 2015	(r289513)
@@ -2661,10 +2661,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: stable/10/sys/sys/vnode.h
==============================================================================
--- stable/10/sys/sys/vnode.h	Sun Oct 18 14:36:04 2015	(r289512)
+++ stable/10/sys/sys/vnode.h	Sun Oct 18 14:41:38 2015	(r289513)
@@ -822,7 +822,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)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510181441.t9IEfcnH096271>