diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-04-29 12:50:51 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-04-29 12:50:51 +0000 |
commit | 840b3bf28aa0b38d78a400158d2b865bc22f42f4 (patch) | |
tree | 9fcda51789a0d72362e040d9eafbe63b44fba0ef | |
parent | eb7a73034c0636af0a32d0293d6ee2f65dad940f (diff) | |
download | plan9front-840b3bf28aa0b38d78a400158d2b865bc22f42f4.tar.xz |
make /n/other work
-rwxr-xr-x | sys/lib/newuser | 6 | ||||
-rw-r--r-- | sys/src/cmd/cwfs/main.c | 28 | ||||
-rw-r--r-- | usr/glenda/lib/profile | 6 |
3 files changed, 19 insertions, 21 deletions
diff --git a/sys/lib/newuser b/sys/lib/newuser index ac2446b18..38c6072d7 100755 --- a/sys/lib/newuser +++ b/sys/lib/newuser @@ -12,7 +12,7 @@ mkdir bin bin/rc bin/mips bin/386 bin/power bin/arm mkdir lib tmp chmod +t tmp # try to create tmp space on other -9fs other >/dev/null >[2=1] && \ +mount -C /srv/cwfs /n/other other >/dev/null >[2=1] && \ mkdir -m 775 /n/other/usr/$user >/dev/null >[2=1] && \ mkdir -m 750 /n/other/usr/$user/tmp >/dev/null >[2=1] && \ bind -c /n/other/usr/$user/tmp $home/tmp @@ -24,6 +24,8 @@ auth/cron -c cat > lib/profile <<! bind -a $x^home/bin/rc /bin bind -a $x^home/bin/$x^cputype /bin +mount -qC /srv/cwfs /n/other other +bind -qc /n/other/usr/$x^user/tmp $x^home/tmp bind -c $x^home/tmp /tmp font = /lib/font/bit/pelm/euro.9.font switch($x^service){ @@ -48,7 +50,6 @@ case cpu prompt=('cpu% ' ' ') fn cpu%{ $x^* } startupasfs - news if (! test -e /mnt/term/mnt/wsys) { # cpu call from drawterm font=/lib/font/bit/pelm/latin1.8.font @@ -59,7 +60,6 @@ case cpu case con prompt=('cpu% ' ' ') startupasfs - news } ! cat > lib/plumbing <<! diff --git a/sys/src/cmd/cwfs/main.c b/sys/src/cmd/cwfs/main.c index c6a07cb35..784bfcfbe 100644 --- a/sys/src/cmd/cwfs/main.c +++ b/sys/src/cmd/cwfs/main.c @@ -7,9 +7,9 @@ extern int oldcachefmt; Map *devmap; -int sfd, rfd; Biobuf bin; int chatty = 0; +int sfd = -1; void machinit(void) @@ -177,23 +177,23 @@ postservice(void) if(service[0] == 0) panic("no service name"); - if(sfd < 0){ - if(pipe(p) < 0) - panic("can't make a pipe"); - sfd = p[0]; - rfd = p[1]; + /* serve 9p for -s */ + if(sfd >= 0){ + srvchan(sfd, "stdio"); + sfd = -1; } /* post 9p service */ - snprint(buf, sizeof(buf), "#s/%s", service); - srvfd(buf, 0666, sfd); - close(sfd); - srvchan(rfd, buf); - if(pipe(p) < 0) panic("can't make a pipe"); + snprint(buf, sizeof(buf), "#s/%s", service); + srvfd(buf, 0666, p[0]); + close(p[0]); + srvchan(p[1], buf); /* post cmd service */ + if(pipe(p) < 0) + panic("can't make a pipe"); snprint(buf, sizeof(buf), "#s/%s.cmd", service); srvfd(buf, 0220, p[0]); close(p[0]); @@ -294,8 +294,6 @@ main(int argc, char **argv) machinit(); conf.confdev = "/dev/sdC0/fscache"; - rfd = sfd = -1; - ARGBEGIN{ case 'a': /* announce on this net */ ann = EARGF(usage()); @@ -310,8 +308,8 @@ main(int argc, char **argv) strcpy(service, EARGF(usage())); break; case 's': - sfd = dup(0, -1); - rfd = dup(1, -1); + dup(0, -1); + sfd = dup(1, -1); close(0); if(open("/dev/cons", OREAD) < 0) open("#c/cons", OREAD); diff --git a/usr/glenda/lib/profile b/usr/glenda/lib/profile index 44929e3ab..79aebb7e0 100644 --- a/usr/glenda/lib/profile +++ b/usr/glenda/lib/profile @@ -1,6 +1,8 @@ bind -a $home/bin/rc /bin bind -a $home/bin/$cputype /bin -bind -c tmp /tmp +mount -qC /srv/cwfs /n/other other +bind -qc /n/other/usr/$user/tmp $home/tmp +bind -c $home/tmp /tmp if(! syscall create /tmp/xxx 1 0666 >[2]/dev/null) ramfs # in case we're running off a cd font = /lib/font/bit/pelm/euro.9.font @@ -26,12 +28,10 @@ case cpu bind -a /mnt/term/dev /dev prompt=('cpu% ' ' ') fn cpu%{ $* } - news if (! test -e /mnt/term/mnt/wsys) { # cpu call from drawterm font=/lib/font/bit/pelm/latin1.8.font exec rio } case con prompt=('cpu% ' ' ') - news } |