diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 3b931056edf5..4d410aa6ec2e 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -171,6 +171,16 @@ vinvalbuf(struct vnode *vp, int flags, kauth_cred_t cred, struct lwp *l, mutex_enter(&bufcache_lock); restart: for (bp = LIST_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) { + if (bp->b_vp != vp) { + if (bp->b_vp) + vprint("bp->b_vp", bp->b_vp); + else + printf("bp->b_vp is null\n"); + if (vp) + vprint("vp", vp); + else + printf("vp is null\n"); + } KASSERT(bp->b_vp == vp); nbp = LIST_NEXT(bp, b_vnbufs); error = bbusy(bp, catch_p, slptimeo, NULL); @@ -184,6 +194,16 @@ restart: } for (bp = LIST_FIRST(&vp->v_cleanblkhd); bp; bp = nbp) { + if (bp->b_vp != vp) { + if (bp->b_vp) + vprint("bp->b_vp", bp->b_vp); + else + printf("bp->b_vp is null\n"); + if (vp) + vprint("vp", vp); + else + printf("vp is null\n"); + } KASSERT(bp->b_vp == vp); nbp = LIST_NEXT(bp, b_vnbufs); error = bbusy(bp, catch_p, slptimeo, NULL); @@ -1119,6 +1139,14 @@ vprint_common(struct vnode *vp, const char *prefix, ARRAY_PRINT(vp->v_tag, vnode_tags), vp->v_tag, ARRAY_PRINT(vp->v_type, vnode_types), vp->v_type, vp->v_mount, vp->v_mountedhere); + switch (vp->v_type) { + case VBLK: + case VCHR: + (*pr)("%s rdev=0x%lx\n", prefix, vp->v_rdev); + break; + default: + break; + } (*pr)("%susecount %d writecount %d holdcount %d\n", prefix, vrefcnt(vp), vp->v_writecount, vp->v_holdcnt); (*pr)("%ssize %" PRIx64 " writesize %" PRIx64 " numoutput %d\n",