add flushpart; avoid O_DIRECT on linux

This commit is contained in:
rsc 2007-04-27 18:14:45 +00:00
parent 7e4524011b
commit e46cacb0ea
10 changed files with 39 additions and 21 deletions

View file

@ -144,7 +144,8 @@ wbindex(Index *ix)
return -1;
}
for(i = 0; i < ix->nsects; i++){
if(writepart(ix->sects[i]->part, ix->sects[i]->tabbase, b->data, ix->tabsize) < 0){
if(writepart(ix->sects[i]->part, ix->sects[i]->tabbase, b->data, ix->tabsize) < 0
|| flushpart(ix->sects[i]->part) < 0){
seterr(EOk, "can't write index: %r");
freezblock(b);
return -1;
@ -498,7 +499,7 @@ wbisect(ISect *is)
freezblock(b);
return -1;
}
if(writepart(is->part, PartBlank, b->data, HeadSize) < 0){
if(writepart(is->part, PartBlank, b->data, HeadSize) < 0 || flushpart(is->part) < 0){
seterr(EAdmin, "can't write index section header: %r");
freezblock(b);
return -1;