diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libfs/write.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libfs/write.c b/src/libfs/write.c index 5da27d12..e4b6253d 100644 --- a/src/libfs/write.c +++ b/src/libfs/write.c @@ -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; |