diff options
| author | Charles.Forsyth <devnull@localhost> | 2007-04-07 12:52:27 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2007-04-07 12:52:27 +0000 |
| commit | e1bd49a1e1823eab71c293efd1bd0c9b83c350c9 (patch) | |
| tree | a9424cde16004cb9e591045225bc61beed339dd5 /os/port/chan.c | |
| parent | 15345f9c75c069d3e2e362af5d6f931eef7772ef (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.c | 34 |
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); |
