MFC: Temporarily undo clusters contribution to global runningbufspace

while handling copy on write for the buffers taking part in the
     cluster.
This commit is contained in:
tegge 2006-05-13 23:58:41 +00:00
parent 0fc16cb7fa
commit 24528b3490

View File

@ -1728,6 +1728,7 @@ ffs_geom_strategy(struct bufobj *bo, struct buf *bp)
if ((vp->v_vflag & VV_COPYONWRITE) &&
vp->v_rdev->si_snapdata != NULL) {
if ((bp->b_flags & B_CLUSTER) != 0) {
runningbufwakeup(bp);
TAILQ_FOREACH(tbp, &bp->b_cluster.cluster_head,
b_cluster.cluster_entry) {
error = ffs_copyonwrite(vp, tbp);
@ -1739,6 +1740,9 @@ ffs_geom_strategy(struct bufobj *bo, struct buf *bp)
return;
}
}
bp->b_runningbufspace = bp->b_bufsize;
atomic_add_int(&runningbufspace,
bp->b_runningbufspace);
} else {
error = ffs_copyonwrite(vp, bp);
if (error != 0 && error != EOPNOTSUPP) {