Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <fcall.h>
4 #include <fs.h>
5 #include <ctype.h>
7 Fsys*
8 nsmount(char *name, char *aname)
9 {
10 char *addr, *ns;
11 int fd;
12 Fsys *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 return nil;
27 }
28 fcntl(fd, F_SETFL, FD_CLOEXEC);
30 fs = fsmount(fd, aname);
31 if(fs == nil){
32 close(fd);
33 return nil;
34 }
36 return fs;
37 }