summaryrefslogtreecommitdiff
path: root/os/port/chan.c
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2007-04-07 12:52:27 +0000
committerCharles.Forsyth <devnull@localhost>2007-04-07 12:52:27 +0000
commite1bd49a1e1823eab71c293efd1bd0c9b83c350c9 (patch)
treea9424cde16004cb9e591045225bc61beed339dd5 /os/port/chan.c
parent15345f9c75c069d3e2e362af5d6f931eef7772ef (diff)
20070407-1350 more updates from plan 9 pc kernel, and a few unreachable fixes(!)
Diffstat (limited to 'os/port/chan.c')
-rw-r--r--os/port/chan.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/os/port/chan.c b/os/port/chan.c
index a5d213aa..c3a56b04 100644
--- a/os/port/chan.c
+++ b/os/port/chan.c
@@ -1297,25 +1297,25 @@ if(c->umh != nil){
c = cnew;
c->name = addelem(c->name, e.elems[e.nelems-1]);
break;
- }else{ /* create failed */
- cclose(cnew);
- if(m)
- putmhead(m);
- if(omode & OEXCL)
- nexterror();
- /* save error */
- createerr = up->env->errstr;
- up->env->errstr = tmperrbuf;
- /* note: we depend that walk does not error */
- if(walk(&c, e.elems+e.nelems-1, 1, nomount, nil) < 0){
- up->env->errstr = createerr;
- error(createerr); /* report true error */
- }
+ }
+
+ /* create failed */
+ cclose(cnew);
+ if(m)
+ putmhead(m);
+ if(omode & OEXCL)
+ nexterror();
+ /* save error */
+ createerr = up->env->errstr;
+ up->env->errstr = tmperrbuf;
+ /* note: we depend that walk does not error */
+ if(walk(&c, e.elems+e.nelems-1, 1, nomount, nil) < 0){
up->env->errstr = createerr;
- omode |= OTRUNC;
- goto Open;
+ error(createerr); /* report true error */
}
- panic("namec: not reached");
+ up->env->errstr = createerr;
+ omode |= OTRUNC;
+ goto Open;
default:
panic("unknown namec access %d\n", amode);