version 1.46, 2015/11/12 11:35:42 |
version 1.47, 2016/04/22 15:01:54 |
Line 229 vfs_vnode_sysinit(void) |
|
Line 229 vfs_vnode_sysinit(void) |
|
cv_init(&vrele_cv, "vrele"); |
cv_init(&vrele_cv, "vrele"); |
error = kthread_create(PRI_VM, KTHREAD_MPSAFE, NULL, vdrain_thread, |
error = kthread_create(PRI_VM, KTHREAD_MPSAFE, NULL, vdrain_thread, |
NULL, NULL, "vdrain"); |
NULL, NULL, "vdrain"); |
KASSERT(error == 0); |
KASSERTMSG((error == 0), "kthread_create(vdrain) failed: %d", error); |
error = kthread_create(PRI_VM, KTHREAD_MPSAFE, NULL, vrele_thread, |
error = kthread_create(PRI_VM, KTHREAD_MPSAFE, NULL, vrele_thread, |
NULL, &vrele_lwp, "vrele"); |
NULL, &vrele_lwp, "vrele"); |
KASSERT(error == 0); |
KASSERTMSG((error == 0), "kthread_create(vrele) failed: %d", error); |
} |
} |
|
|
/* |
/* |
Line 579 vrelel(vnode_t *vp, int flags) |
|
Line 579 vrelel(vnode_t *vp, int flags) |
|
*/ |
*/ |
mutex_exit(vp->v_interlock); |
mutex_exit(vp->v_interlock); |
error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); |
error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); |
KASSERT(error == 0); |
KASSERTMSG((error == 0), "vn_lock failed: %d", error); |
mutex_enter(vp->v_interlock); |
mutex_enter(vp->v_interlock); |
defer = false; |
defer = false; |
} else { |
} else { |
Line 916 vclean(vnode_t *vp) |
|
Line 916 vclean(vnode_t *vp) |
|
WAPBL_DISCARD(wapbl_vptomp(vp)); |
WAPBL_DISCARD(wapbl_vptomp(vp)); |
error = vinvalbuf(vp, 0, NOCRED, l, 0, 0); |
error = vinvalbuf(vp, 0, NOCRED, l, 0, 0); |
} |
} |
KASSERT(error == 0); |
KASSERTMSG((error == 0), "vinvalbuf failed: %d", error); |
KASSERT((vp->v_iflag & VI_ONWORKLST) == 0); |
KASSERT((vp->v_iflag & VI_ONWORKLST) == 0); |
if (active && (vp->v_type == VBLK || vp->v_type == VCHR)) { |
if (active && (vp->v_type == VBLK || vp->v_type == VCHR)) { |
spec_node_revoke(vp); |
spec_node_revoke(vp); |