commit - 6bcc5ae9851fc3db44144b4f07d77b3e1224232e
commit + be3e351464e9c656eae8644727060f3d458a2984
blob - 5ccf2900e2427d9c291ce9754bbaa69f17451fb8
blob + 783f9ab192dc126a5e3b40f51f454ab56d0fb624
--- man/man4/vacfs.4
+++ man/man4/vacfs.4
.B -h
.I host
]
-.\" [
-.\" .B -m
-.\" .I mtpt
-.\" ]
[
+.B -m
+.I mtpt
+]
+[
.B -s
.I srvname
]
.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.
.TP
blob - 9557667afd5ffabe328c8979864ab10436c1069b
blob + b5aafe87287f1f7e0ae81b4a7425dcab883f1bb4
--- src/cmd/vac/vacfs.c
+++ src/cmd/vac/vacfs.c
/* VtSession *session; */
int noperm;
int dotu;
+char *defmnt;
Fid * newfid(int);
void error(char*);
case 's':
defsrv = EARGF(usage());
break;
+ case 'm':
+ defmnt = EARGF(usage());
+ break;
case 'p':
noperm = 1;
break;
mfd[1] = p[0];
proccreate(srv, 0, 32 * 1024);
- if(defsrv == nil){
+ if(defsrv == nil && defmnt == nil){
q = strrchr(argv[0], '/');
if(q)
q++;
defsrv[l-4] = 0;
}
- if(post9pservice(p[1], defsrv) != 0)
+ if(post9pservice(p[1], defsrv, defmnt) != 0)
sysfatal("post9pservice");
threadexits(0);
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)
+ n = read9pmsg(mfd[0], mdata, sizeof mdata);
+ if(n <= 0)
break;
if(convM2Su(mdata, n, &rhdr, dotu) != n)
sysfatal("convM2S conversion error");