aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/factotum/fs.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-02-11 16:56:15 +0000
committerrsc <devnull@localhost>2005-02-11 16:56:15 +0000
commit2e397eb47c87e78b4a9e2f4a550be4792bd05fa2 (patch)
tree696a69f20b422623857dc00cf309791db2d346e7 /src/cmd/factotum/fs.c
parent3889d01d4b0d7a0c5e32ba81fb3c7e01094b8884 (diff)
downloadplan9port-2e397eb47c87e78b4a9e2f4a550be4792bd05fa2.tar.gz
plan9port-2e397eb47c87e78b4a9e2f4a550be4792bd05fa2.tar.bz2
plan9port-2e397eb47c87e78b4a9e2f4a550be4792bd05fa2.zip
bug fixes; add secstore
Diffstat (limited to 'src/cmd/factotum/fs.c')
-rw-r--r--src/cmd/factotum/fs.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/cmd/factotum/fs.c b/src/cmd/factotum/fs.c
index 0e4f2fd6..1d801b42 100644
--- a/src/cmd/factotum/fs.c
+++ b/src/cmd/factotum/fs.c
@@ -419,7 +419,7 @@ fsflush(Req *r)
static void
fsdestroyfid(Fid *fid)
{
- if(fid->qid.path == Qrpc){
+ if(fid->qid.path == Qrpc && fid->aux){
convhangup(fid->aux);
convclose(fid->aux);
}
@@ -435,8 +435,6 @@ fsreqthread(void *v)
USED(v);
- creq = chancreate(sizeof(Req*), 0);
-
while((r = recvp(creq)) != nil){
switch(r->ifcall.type){
default:
@@ -464,8 +462,6 @@ fsclunkthread(void *v)
Fid *f;
USED(v);
- cfid = chancreate(sizeof(Fid*), 0);
- cfidr = chancreate(sizeof(Fid*), 0);
while((f = recvp(cfid)) != nil){
fsdestroyfid(f);
@@ -486,13 +482,6 @@ fsproc(void *v)
static void
fsattach(Req *r)
{
- static int first = 1;
-
- if(first){
- proccreate(fsproc, nil, STACK);
- first = 0;
- }
-
r->fid->qid = mkqid(QTDIR, Qroot);
r->ofcall.qid = r->fid->qid;
respond(r, nil);
@@ -511,6 +500,17 @@ fssendclunk(Fid *f)
recvp(cfidr);
}
+void
+fsstart(Srv *s)
+{
+ USED(s);
+
+ creq = chancreate(sizeof(Req*), 0);
+ cfid = chancreate(sizeof(Fid*), 0);
+ cfidr = chancreate(sizeof(Fid*), 0);
+ proccreate(fsproc, nil, STACK);
+}
+
Srv fs = {
.attach= fsattach,
.walk1= fswalk1,
@@ -520,5 +520,6 @@ Srv fs = {
.stat= fsstat,
.flush= fssend,
.destroyfid= fssendclunk,
+.start= fsstart,
};