svn commit: r197942 - head/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Sat Oct 10 21:17:30 UTC 2009
Author: kib
Date: Sat Oct 10 21:17:30 2009
New Revision: 197942
URL: http://svn.freebsd.org/changeset/base/197942
Log:
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.
Reported and tested by: Harald Schmalzbauer <h.schmalzbauer omnilan de>
MFC after: 3 days
Modified:
head/sys/kern/kern_exit.c
Modified: head/sys/kern/kern_exit.c
==============================================================================
--- head/sys/kern/kern_exit.c Sat Oct 10 21:10:49 2009 (r197941)
+++ head/sys/kern/kern_exit.c Sat Oct 10 21:17:30 2009 (r197942)
@@ -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