9p: fix writen (sqweek)

This commit is contained in:
Russ Cox 2008-06-19 23:07:48 -04:00
parent 3e4ceac760
commit dfe57535af

View file

@ -28,16 +28,21 @@ usage(void)
int int
writen(int fd, void *buf, int n) writen(int fd, void *buf, int n)
{ {
long m, tot; int m, tot;
for(tot=0; tot<n; tot+=m){ if(n < 0){
m = n - tot; werrstr("bad count");
if(m > 8192) return -1;
m = 8192;
if(write(fd, (uchar*)buf+tot, m) != m)
break;
} }
return tot; if(n == 0)
return 0;
tot = 0;
while((m = write(fd, (char*)buf+tot, n-tot)) > 0)
tot += m;
if(tot < n)
return -1;
return n;
} }
CFsys *(*nsmnt)(char*, char*) = nsamount; CFsys *(*nsmnt)(char*, char*) = nsamount;