diff options
author | Russ Cox <rsc@swtch.com> | 2008-04-17 16:12:34 -0400 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2008-04-17 16:12:34 -0400 |
commit | be3e351464e9c656eae8644727060f3d458a2984 (patch) | |
tree | 5025c55e150e74a5bbf7e99a0cdcc0ab267da401 | |
parent | 6bcc5ae9851fc3db44144b4f07d77b3e1224232e (diff) | |
download | plan9port-be3e351464e9c656eae8644727060f3d458a2984.tar.gz plan9port-be3e351464e9c656eae8644727060f3d458a2984.tar.bz2 plan9port-be3e351464e9c656eae8644727060f3d458a2984.zip |
vacfs: implement -m flag
-rw-r--r-- | man/man4/vacfs.4 | 15 | ||||
-rw-r--r-- | src/cmd/vac/vacfs.c | 20 |
2 files changed, 14 insertions, 21 deletions
diff --git a/man/man4/vacfs.4 b/man/man4/vacfs.4 index 5ccf2900..783f9ab1 100644 --- a/man/man4/vacfs.4 +++ b/man/man4/vacfs.4 @@ -14,10 +14,10 @@ vacfs \- a Venti-based file system .B -h .I host ] -.\" [ -.\" .B -m -.\" .I mtpt -.\" ] +[ +.B -m +.I mtpt +] [ .B -s .I srvname @@ -59,10 +59,9 @@ metaname .TP .B -i Use file descriptors 0 and 1 as the 9P communication channel rather than create a pipe. -.\" .TP -.\" .BI -m " mtpt -.\" The location to mount the file system. The default is -.\" .BR /n/vac . +.TP +.BI -m " mtpt +The location to mount the file system. The default is not to mount. .TP .BI -p Disables permission checking. diff --git a/src/cmd/vac/vacfs.c b/src/cmd/vac/vacfs.c index 9557667a..b5aafe87 100644 --- a/src/cmd/vac/vacfs.c +++ b/src/cmd/vac/vacfs.c @@ -62,6 +62,7 @@ VtConn *conn; /* VtSession *session; */ int noperm; int dotu; +char *defmnt; Fid * newfid(int); void error(char*); @@ -166,6 +167,9 @@ threadmain(int argc, char *argv[]) case 's': defsrv = EARGF(usage()); break; + case 'm': + defmnt = EARGF(usage()); + break; case 'p': noperm = 1; break; @@ -189,7 +193,7 @@ threadmain(int argc, char *argv[]) mfd[1] = p[0]; proccreate(srv, 0, 32 * 1024); - if(defsrv == nil){ + if(defsrv == nil && defmnt == nil){ q = strrchr(argv[0], '/'); if(q) q++; @@ -203,7 +207,7 @@ threadmain(int argc, char *argv[]) defsrv[l-4] = 0; } - if(post9pservice(p[1], defsrv) != 0) + if(post9pservice(p[1], defsrv, defmnt) != 0) sysfatal("post9pservice"); threadexits(0); @@ -814,18 +818,8 @@ io(void) int n; for(;;){ - /* - * reading from a pipe or a network device - * will give an error after a few eof reads - * however, we cannot tell the difference - * between a zero-length read and an interrupt - * on the processes writing to us, - * so we wait for the error - */ n = read9pmsg(mfd[0], mdata, sizeof mdata); - if(n == 0) - continue; - if(n < 0) + if(n <= 0) break; if(convM2Su(mdata, n, &rhdr, dotu) != n) sysfatal("convM2S conversion error"); |