Remove 'VXLOCK: interlock avoided' warnings. This can now occur in normal

operation.  The vgonel() code has always called vclean() but until we
started proactively freeing vnodes it would never actually be called with
a dirty vnode, so this situation did not occur prior to the vnlru() code.
Now that we proactively free vnodes when kern.maxvnodes is hit, however,
vclean() winds up with work to do and improperly generates the warnings.

Reviewed by:	peter
Approved by:	re (for MFC)
MFC after:	1 day
This commit is contained in:
Matthew Dillon 2002-01-19 02:14:45 +00:00
parent aa11a498ff
commit c73df808a0
2 changed files with 6 additions and 0 deletions

View File

@ -1648,7 +1648,10 @@ vget(vp, flags, td)
mtx_lock(&vp->v_interlock);
if (vp->v_flag & VXLOCK) {
if (vp->v_vxproc == curthread) {
#if 0
/* this can now occur in normal operation */
log(LOG_INFO, "VXLOCK interlock avoided\n");
#endif
} else {
vp->v_flag |= VXWANT;
msleep((caddr_t)vp, &vp->v_interlock, PINOD | PDROP,

View File

@ -701,8 +701,11 @@ debug_vn_lock(vp, flags, td, filename, line)
"vn_lock", 0);
error = ENOENT;
} else {
#if 0
/* this can now occur in normal operation */
if (vp->v_vxproc != NULL)
log(LOG_INFO, "VXLOCK interlock avoided in vn_lock\n");
#endif
#ifdef DEBUG_LOCKS
vp->filename = filename;
vp->line = line;