make sure a write of 0 bytes does a 0-length write.
diff --git a/src/libfs/write.c b/src/libfs/write.c
index 5da27d1..e4b6253 100644
--- a/src/libfs/write.c
+++ b/src/libfs/write.c
@@ -43,16 +43,18 @@
 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;