diff options
author | rsc <devnull@localhost> | 2007-04-27 17:52:24 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2007-04-27 17:52:24 +0000 |
commit | 7e4524011b432ca5225d9768ba7f11a377776fbf (patch) | |
tree | b826944c035ce806eb18297e87153291ed1e36b1 /src/cmd/venti/srv/dcache.c | |
parent | 9ec61f3ede67c5df2726c9e67736fec8af6d8b80 (diff) | |
download | plan9port-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.c | 12 |
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; } |