make sure a write of 0 bytes does a 0-length write.
This commit is contained in:
parent
298f6bd657
commit
493f3d0fbf
1 changed files with 4 additions and 2 deletions
|
|
@ -43,16 +43,18 @@ _fspwrite(Fid *fid, void *buf, long n, vlong offset)
|
|||
long
|
||||
fspwrite(Fid *fid, void *buf, long n, vlong offset)
|
||||
{
|
||||
long tot, want, got;
|
||||
long tot, want, got, first;
|
||||
uint msize;
|
||||
|
||||
msize = fid->fs->msize - IOHDRSZ;
|
||||
tot = 0;
|
||||
while(tot < n){
|
||||
first = 1;
|
||||
while(tot < n || first){
|
||||
want = n - tot;
|
||||
if(want > msize)
|
||||
want = msize;
|
||||
got = _fspwrite(fid, buf, want, offset);
|
||||
first = 0;
|
||||
if(got < 0){
|
||||
if(tot == 0)
|
||||
return got;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue