From f2b1200d0871d89fc5baf0a4dc119b229ebe0903 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 20 Oct 2003 18:24:38 +0000 Subject: [PATCH] Initialize the buf's b_object in pbgetvp(). Clear it in pbrelvp(). (This facilitates synchronization of the vm page's valid field using the vm object's lock.) Suggested by: tegge --- sys/kern/vfs_cluster.c | 1 - sys/kern/vfs_subr.c | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 11964acba9d..dc86fb98fdd 100644 --- a/sys/kern/vfs_cluster.c +++ b/sys/kern/vfs_cluster.c @@ -373,7 +373,6 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) bp->b_offset = tbp->b_offset; KASSERT(bp->b_offset != NOOFFSET, ("cluster_rbuild: no buffer offset")); pbgetvp(vp, bp); - bp->b_object = tbp->b_object; TAILQ_INIT(&bp->b_cluster.cluster_head); diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index e65ec91195b..40925065fb3 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1840,6 +1840,7 @@ pbgetvp(vp, bp) KASSERT(bp->b_vp == NULL, ("pbgetvp: not free")); bp->b_vp = vp; + bp->b_object = vp->v_object; bp->b_flags |= B_PAGING; bp->b_dev = vn_todev(vp); } @@ -1865,6 +1866,7 @@ pbrelvp(bp) } VI_UNLOCK(bp->b_vp); bp->b_vp = (struct vnode *) 0; + bp->b_object = NULL; bp->b_flags &= ~B_PAGING; }