aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/dcache.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2007-04-27 17:52:24 +0000
committerrsc <devnull@localhost>2007-04-27 17:52:24 +0000
commit7e4524011b432ca5225d9768ba7f11a377776fbf (patch)
treeb826944c035ce806eb18297e87153291ed1e36b1 /src/cmd/venti/srv/dcache.c
parent9ec61f3ede67c5df2726c9e67736fec8af6d8b80 (diff)
downloadplan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.tar.gz
plan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.tar.bz2
plan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.zip
checkpoint
Diffstat (limited to 'src/cmd/venti/srv/dcache.c')
-rw-r--r--src/cmd/venti/srv/dcache.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cmd/venti/srv/dcache.c b/src/cmd/venti/srv/dcache.c
index 4f87e77e..52a5364d 100644
--- a/src/cmd/venti/srv/dcache.c
+++ b/src/cmd/venti/srv/dcache.c
@@ -715,6 +715,7 @@ static int
parallelwrites(DBlock **b, DBlock **eb, int dirty)
{
DBlock **p, **q;
+ Part *part;
for(p=b; p<eb && (*p)->dirty == dirty; p++){
assert(b<=p && p<eb);
@@ -725,6 +726,17 @@ parallelwrites(DBlock **b, DBlock **eb, int dirty)
assert(b<=p && p<eb);
recvp((*p)->writedonechan);
}
+
+ /*
+ * Flush the partitions that have been written to.
+ */
+ part = nil;
+ for(p=b; p<q; p++){
+ if(part != (*p)->part){
+ part = (*p)->part;
+ flushpart(part);
+ }
+ }
return p-b;
}