---
src/cmd/9pfuse/main.c | 15 ++++++++++-----
src/lib9pclient/fs.c | 5 +++--
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/cmd/9pfuse/main.c b/src/cmd/9pfuse/main.c
index ca9f3872..bc76b16d 100644
--- a/src/cmd/9pfuse/main.c
+++ b/src/cmd/9pfuse/main.c
@@ -61,6 +61,7 @@
int debug;
char *aname = "";
+char *uname = "";
void fusedispatch(void*);
Channel *fusechan;
@@ -85,12 +86,12 @@ double entrytimeout = 1.0;
CFsys *fsys;
CFid *fsysroot;
-void init9p(char*, char*);
+void init9p(char*, char*, char*);
void
usage(void)
{
- fprint(2, "usage: 9pfuse [-D] [-A attrtimeout] [-a aname] address
mtpt\n");
+ fprint(2, "usage: 9pfuse [-D] [-A attrtimeout] [-a aname] [-u uname]
address mtpt\n");
exit(1);
}
@@ -106,6 +107,7 @@ threadmaybackground(void)
void
threadmain(int argc, char **argv)
{
+ uname = getuser();
ARGBEGIN{
case 'D':
chatty9pclient++;
@@ -117,6 +119,9 @@ threadmain(int argc, char **argv)
case 'a':
aname = EARGF(usage());
break;
+ case 'u':
+ uname = EARGF(usage());
+ break;
default:
usage();
}ARGEND
@@ -131,7 +136,7 @@ threadmain(int argc, char **argv)
setsid(); /* won't be able to use console, but can't be
interrupted */
- init9p(argv[0], aname);
+ init9p(argv[0], aname, uname);
initfuse(argv[1]);
fusechan = chancreate(sizeof(void*), 0);
@@ -160,7 +165,7 @@ fusereader(void *v)
}
void
-init9p(char *addr, char *spec)
+init9p(char *addr, char *spec, char *uname)
{
int fd;
@@ -170,7 +175,7 @@ init9p(char *addr, char *spec)
if((fd = dial(netmkaddr(addr, "tcp", "564"), nil, nil, nil)) <
0)
sysfatal("dial %s: %r", addr);
proccreate(watchfd, (void*)(uintptr)fd, STACK);
- if((fsys = fsmount(fd, spec)) == nil)
+ if((fsys = fsmount(fd, spec, uname)) == nil)
sysfatal("fsmount: %r");
fsysroot = fsroot(fsys);
}
diff --git a/src/lib9pclient/fs.c b/src/lib9pclient/fs.c
index f1b9b085..0088375e 100644
--- a/src/lib9pclient/fs.c
+++ b/src/lib9pclient/fs.c
@@ -66,8 +66,9 @@ fsroot(CFsys *fs)
return fs->root;
}
+
CFsys*
-fsmount(int fd, char *aname)
+fsmount(int fd, char *aname, char *uname)
{
CFsys *fs;
CFid *fid;
@@ -76,7 +77,7 @@ fsmount(int fd, char *aname)
if(fs == nil)
return nil;
- if((fid = fsattach(fs, nil, getuser(), aname)) == nil){
+ if((fid = fsattach(fs, nil, uname, aname)) == nil){
_fsunmount(fs);
return nil;
}
--
2.46.4