svn commit: r302322 - head/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Sun Jul 3 01:56:50 UTC 2016
Author: kib
Date: Sun Jul 3 01:56:48 2016
New Revision: 302322
URL: https://svnweb.freebsd.org/changeset/base/302322
Log:
Remove racy assert. The thread which changes vnode usecount from 0 to 1
does it under the vnode interlock, but the interlock is not owned by the
asserting thread. As result, we might read increased use counter but also
still see VI_OWEINACT.
In collaboration with: nwhitehorn
Hardware donated by: IBM LTC
Sponsored by: The FreeBSD Foundation (kib)
Approved by: re (gjb)
Modified:
head/sys/kern/vfs_subr.c
Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c Sun Jul 3 01:35:27 2016 (r302321)
+++ head/sys/kern/vfs_subr.c Sun Jul 3 01:56:48 2016 (r302322)
@@ -2536,11 +2536,8 @@ vget(struct vnode *vp, int flags, struct
*
* Upgrade our holdcnt to a usecount.
*/
- if (vp->v_type != VCHR &&
- vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) {
- VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp,
- ("vnode with usecount and VI_OWEINACT set"));
- } else {
+ if (vp->v_type == VCHR ||
+ !vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) {
VI_LOCK(vp);
if ((vp->v_iflag & VI_OWEINACT) == 0) {
oweinact = 0;
More information about the svn-src-all
mailing list