Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <fcall.h>
4 #include <9pclient.h>
5 #include <ctype.h>
7 CFsys*
8 nsmount(char *name, char *aname)
9 {
10 char *addr, *ns;
11 int fd;
12 CFsys *fs;
14 ns = getns();
15 if(ns == nil)
16 return nil;
18 addr = smprint("unix!%s/%s", ns, name);
19 free(ns);
20 if(addr == nil)
21 return nil;
23 fd = dial(addr, 0, 0, 0);
24 if(fd < 0){
25 werrstr("dial %s: %r", addr);
26 free(addr);
27 return nil;
28 }
29 free(addr);
31 fcntl(fd, F_SETFL, FD_CLOEXEC);
33 fs = fsmount(fd, aname);
34 if(fs == nil){
35 close(fd);
36 return nil;
37 }
39 return fs;
40 }