diff options
Diffstat (limited to 'sys/kern/vfs_cluster.c')
-rw-r--r-- | sys/kern/vfs_cluster.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 46fbe3ae206..6f99d0f7077 100644 --- a/sys/kern/vfs_cluster.c +++ b/sys/kern/vfs_cluster.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_cluster.c,v 1.19 2001/02/23 14:42:38 csapuntz Exp $ */ +/* $OpenBSD: vfs_cluster.c,v 1.20 2001/02/23 14:52:50 csapuntz Exp $ */ /* $NetBSD: vfs_cluster.c,v 1.12 1996/04/22 01:39:05 christos Exp $ */ /*- @@ -700,13 +700,6 @@ redo: panic("Clustered write to wrong blocks"); } - /* - * We might as well AGE the buffer here; it's either empty, or - * contains data that we couldn't get rid of (but wanted to). - */ - tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI); - tbp->b_flags |= (B_ASYNC | B_AGE); - if (LIST_FIRST(&tbp->b_dep) != NULL) buf_start(tbp); @@ -717,7 +710,13 @@ redo: tbp->b_bufsize -= size; s = splbio(); - reassignbuf(tbp, tbp->b_vp); /* put on clean list */ + buf_undirty(bp); + /* + * We might as well AGE the buffer here; it's either empty, or + * contains data that we couldn't get rid of (but wanted to). + */ + tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR); + tbp->b_flags |= (B_ASYNC | B_AGE); ++tbp->b_vp->v_numoutput; splx(s); b_save->bs_children[i] = tbp; |