Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_subr.c
Show First 20 Lines • Show All 2,639 Lines • ▼ Show 20 Lines | MNT_VNODE_FOREACH_ALL(vp, mp, mvp) { | ||||
/* | /* | ||||
* With v_usecount == 0, all we need to do is clear out the | * With v_usecount == 0, all we need to do is clear out the | ||||
* vnode data structures and we are done. | * vnode data structures and we are done. | ||||
* | * | ||||
* If FORCECLOSE is set, forcibly close the vnode. | * If FORCECLOSE is set, forcibly close the vnode. | ||||
*/ | */ | ||||
if (vp->v_usecount == 0 || (flags & FORCECLOSE)) { | if (vp->v_usecount == 0 || (flags & FORCECLOSE)) { | ||||
VNASSERT(vp->v_usecount == 0 || | VNASSERT(vp->v_usecount == 0 || | ||||
vp->v_op != &devfs_specops || | |||||
(vp->v_type != VCHR && vp->v_type != VBLK), vp, | (vp->v_type != VCHR && vp->v_type != VBLK), vp, | ||||
("device VNODE %p is FORCECLOSED", vp)); | ("device VNODE %p is FORCECLOSED", vp)); | ||||
vgonel(vp); | vgonel(vp); | ||||
} else { | } else { | ||||
busy++; | busy++; | ||||
#ifdef DIAGNOSTIC | #ifdef DIAGNOSTIC | ||||
if (busyprt) | if (busyprt) | ||||
vprint("vflush: busy vnode", vp); | vprint("vflush: busy vnode", vp); | ||||
▲ Show 20 Lines • Show All 2,236 Lines • Show Last 20 Lines |