summaryrefslogtreecommitdiffstats
path: root/src/cmd/acme/fsys.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-27 20:36:04 +0000
committerrsc <devnull@localhost>2005-01-27 20:36:04 +0000
commit07494878dc5ae11652cbe221cf9e2a20da94ca96 (patch)
treeb450c924a2bdb8c856f23cead69eecf9f4627875 /src/cmd/acme/fsys.c
parentc91cfa9177ba734a4906dce29810845d3557650c (diff)
downloadplan9port-07494878dc5ae11652cbe221cf9e2a20da94ca96.tar.gz
plan9port-07494878dc5ae11652cbe221cf9e2a20da94ca96.zip
remove searching print; check fids in use; handle addr correctly again
Diffstat (limited to 'src/cmd/acme/fsys.c')
-rw-r--r--src/cmd/acme/fsys.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/cmd/acme/fsys.c b/src/cmd/acme/fsys.c
index 66b935f8..536a3334 100644
--- a/src/cmd/acme/fsys.c
+++ b/src/cmd/acme/fsys.c
@@ -160,10 +160,24 @@ fsysproc(void *v)
if(fcall[x->fcall.type] == 0)
x = respond(x, &t, "bad fcall type");
else{
- if(x->fcall.type==Tversion || x->fcall.type==Tauth)
+ switch(x->fcall.type){
+ case Tversion:
+ case Tauth:
+ case Tflush:
f = nil;
- else
+ break;
+ case Tattach:
+ f = newfid(x->fcall.fid);
+ break;
+ default:
f = newfid(x->fcall.fid);
+ if(!f->busy){
+ x->f = f;
+ x = respond(x, &t, "fid not in use");
+ continue;
+ }
+ break;
+ }
x->f = f;
x = (*fcall[x->fcall.type])(x, f);
}