diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-06-16 06:26:31 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-06-16 06:26:31 +0200 |
commit | e36d9f5c4e667970a4a7aa15744e304ccc7c58f3 (patch) | |
tree | 353251f1adcf5cd89a1cc901f7aed099011b8a19 /sys/src/cmd/ndb | |
parent | d84aeddee7911c9df739bad58c72189ac336f23f (diff) |
make filesystem handling of read9pmsg() consistent
Diffstat (limited to 'sys/src/cmd/ndb')
-rw-r--r-- | sys/src/cmd/ndb/cs.c | 4 | ||||
-rw-r--r-- | sys/src/cmd/ndb/dns.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/ndb/cs.c b/sys/src/cmd/ndb/cs.c index f760c8f39..512f1706a 100644 --- a/sys/src/cmd/ndb/cs.c +++ b/sys/src/cmd/ndb/cs.c @@ -444,8 +444,10 @@ io(void) for(;;){ n = read9pmsg(mfd[0], mdata, sizeof mdata); - if(n<=0) + if(n < 0) error("mount read"); + if(n == 0) + continue; job = newjob(); if(convM2S(mdata, n, &job->request) != n){ syslog(1, logfile, "format error %ux %ux %ux %ux %ux", diff --git a/sys/src/cmd/ndb/dns.c b/sys/src/cmd/ndb/dns.c index 32bae4040..5a8e25ce6 100644 --- a/sys/src/cmd/ndb/dns.c +++ b/sys/src/cmd/ndb/dns.c @@ -430,8 +430,9 @@ io(void) while(!stop){ procsetname("%d %s/dns Twrites of %d 9p rpcs read; %d alarms", stats.qrecvd9p, mntpt, stats.qrecvd9prpc, stats.alarms); - n = read9pmsg(mfd[0], mdata, sizeof mdata); - if(n<=0){ + while((n = read9pmsg(mfd[0], mdata, sizeof mdata)) == 0) + ; + if(n < 0){ dnslog("error reading 9P from %s: %r", mntpt); sleep(2000); /* don't thrash after read error */ return; |