aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libfs/write.c6
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;