svn commit: r198025 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci kern

Konstantin Belousov kib at FreeBSD.org
Tue Oct 13 09:24:52 UTC 2009


Author: kib
Date: Tue Oct 13 09:24:51 2009
New Revision: 198025
URL: http://svn.freebsd.org/changeset/base/198025

Log:
  MFC r197942:
  Refine r195509, instead of checking that vnode type is VBAD, that is
  set quite late in the revocation path, properly verify that vnode is
  not doomed before calling VOP.
  
  Approved by:	re (bz)

Modified:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/kern/kern_exit.c

Modified: stable/8/sys/kern/kern_exit.c
==============================================================================
--- stable/8/sys/kern/kern_exit.c	Tue Oct 13 09:21:20 2009	(r198024)
+++ stable/8/sys/kern/kern_exit.c	Tue Oct 13 09:24:51 2009	(r198025)
@@ -340,10 +340,10 @@ exit1(struct thread *td, int rv)
 
 		if (ttyvp != NULL) {
 			sx_xunlock(&proctree_lock);
-			vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY);
-			if (ttyvp->v_type != VBAD)
+			if (vn_lock(ttyvp, LK_EXCLUSIVE) == 0) {
 				VOP_REVOKE(ttyvp, REVOKEALL);
-			VOP_UNLOCK(ttyvp, 0);
+				VOP_UNLOCK(ttyvp, 0);
+			}
 			sx_xlock(&proctree_lock);
 		}
 	}


More information about the svn-src-all mailing list