summaryrefslogtreecommitdiff
path: root/sys/kern/vfs_cluster.c
diff options
context:
space:
mode:
authorConstantine Sapuntzakis <csapuntz@cvs.openbsd.org>2001-02-27 14:55:35 +0000
committerConstantine Sapuntzakis <csapuntz@cvs.openbsd.org>2001-02-27 14:55:35 +0000
commit9f269a3a1964bdf4119a5f1ea2c52304371d7e9c (patch)
treefbb6773709b3a5bbaa7da289dca98e02d80ee6b2 /sys/kern/vfs_cluster.c
parent89aef0aec2c03f2b5be04451b881fdfe8fbe0158 (diff)
Move buf_undirty and tbp flags manipulation back before calling the
soft updates code
Diffstat (limited to 'sys/kern/vfs_cluster.c')
-rw-r--r--sys/kern/vfs_cluster.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c
index 6f99d0f7077..4da9e7d6ae1 100644
--- a/sys/kern/vfs_cluster.c
+++ b/sys/kern/vfs_cluster.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vfs_cluster.c,v 1.20 2001/02/23 14:52:50 csapuntz Exp $ */
+/* $OpenBSD: vfs_cluster.c,v 1.21 2001/02/27 14:55:34 csapuntz Exp $ */
/* $NetBSD: vfs_cluster.c,v 1.12 1996/04/22 01:39:05 christos Exp $ */
/*-
@@ -700,25 +700,25 @@ redo:
panic("Clustered write to wrong blocks");
}
- if (LIST_FIRST(&tbp->b_dep) != NULL)
- buf_start(tbp);
-
- pagemove(tbp->b_data, cp, size);
- bp->b_bcount += size;
- bp->b_bufsize += size;
-
- tbp->b_bufsize -= size;
-
- s = splbio();
- 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);
+ s = splbio();
+ buf_undirty(tbp);
++tbp->b_vp->v_numoutput;
splx(s);
+
+ if (LIST_FIRST(&tbp->b_dep) != NULL)
+ buf_start(tbp);
+
+ pagemove(tbp->b_data, cp, size);
+ bp->b_bcount += size;
+ bp->b_bufsize += size;
+
+ tbp->b_bufsize -= size;
b_save->bs_children[i] = tbp;
cp += size;