diff options
Diffstat (limited to 'os')
| -rw-r--r-- | os/port/devcons.c | 18 | ||||
| -rw-r--r-- | os/port/devtinyfs.c | 2 | ||||
| -rw-r--r-- | os/port/inferno.c | 1 | ||||
| -rw-r--r-- | os/port/pgrp.c | 24 |
4 files changed, 13 insertions, 32 deletions
diff --git a/os/port/devcons.c b/os/port/devcons.c index 2f24a36f..28f4558f 100644 --- a/os/port/devcons.c +++ b/os/port/devcons.c @@ -626,7 +626,6 @@ enum{ Qmemory, Qmsec, Qnull, - Qpin, Qrandom, Qnotquiterandom, Qsysname, @@ -650,7 +649,6 @@ static Dirtab consdir[]= "memory", {Qmemory}, 0, 0444, "msec", {Qmsec}, NUMSIZE, 0444, "null", {Qnull}, 0, 0666, - "pin", {Qpin}, 0, 0666, "random", {Qrandom}, 0, 0444, "notquiterandom", {Qnotquiterandom}, 0, 0444, "sysname", {Qsysname}, 0, 0664, @@ -956,12 +954,6 @@ consread(Chan *c, void *buf, long n, vlong offset) else return qread(kscanq, buf, n); - case Qpin: - p = "pin set"; - if(up->env->pgrp->pin == Nopin) - p = "no pin"; - return readstr(offset, buf, n, p); - case Qtime: snprint(tmp, sizeof(tmp), "%.lld", (vlong)mseconds()*1000); return readstr(offset, buf, n, tmp); @@ -1146,16 +1138,6 @@ conswrite(Chan *c, void *va, long n, vlong offset) case Qnull: break; - case Qpin: - if(up->env->pgrp->pin != Nopin) - error("pin already set"); - if(n >= sizeof(buf)) - n = sizeof(buf)-1; - strncpy(buf, va, n); - buf[n] = '\0'; - up->env->pgrp->pin = atoi(buf); - return n; - case Qsysname: if(offset != 0) error(Ebadarg); diff --git a/os/port/devtinyfs.c b/os/port/devtinyfs.c index b63caf3f..19e1651f 100644 --- a/os/port/devtinyfs.c +++ b/os/port/devtinyfs.c @@ -337,7 +337,7 @@ newfile(Tfs *fs, char *name) rock.f->bno = mapalloc(rock.fs); rock.f->fbno = Notabno; rock.f->r = 1; - rock.f->pin = up->env->pgrp->pin; + rock.f->pin = Notapin; /* write directory block */ if(waserror()){ diff --git a/os/port/inferno.c b/os/port/inferno.c index 8858ec1e..7653f2d2 100644 --- a/os/port/inferno.c +++ b/os/port/inferno.c @@ -861,7 +861,6 @@ Sys_pctl(void *fp) np.np->slash = cclone(dot); cnameclose(np.np->slash->name); np.np->slash->name = newcname("/"); - np.np->pin = o->pgrp->pin; /* pin is ALWAYS inherited */ np.np->nodevs = o->pgrp->nodevs; opg = o->pgrp; o->pgrp = np.np; diff --git a/os/port/pgrp.c b/os/port/pgrp.c index 6b2d7d5c..309e2153 100644 --- a/os/port/pgrp.c +++ b/os/port/pgrp.c @@ -16,7 +16,6 @@ newpgrp(void) p = smalloc(sizeof(Pgrp)); p->ref = 1; p->pgrpid = incref(&pgrpid); - p->pin = Nopin; p->progmode = 0644; p->privatemem = 0; return p; @@ -83,18 +82,23 @@ pgrpcpy(Pgrp *to, Pgrp *from) Mhead *f, **tom, **l, *mh; wlock(&from->ns); + if(waserror()){ + wunlock(&from->ns); + nexterror(); + } order = 0; tom = to->mnthash; for(i = 0; i < MNTHASH; i++) { l = tom++; for(f = from->mnthash[i]; f; f = f->hash) { rlock(&f->lock); - mh = malloc(sizeof(Mhead)); - if(mh == nil) { + if(waserror()){ runlock(&f->lock); - wunlock(&from->ns); - error(Enomem); + nexterror(); } + mh = malloc(sizeof(Mhead)); + if(mh == nil) + error(Enomem); mh->from = f->from; mh->ref = 1; incref(mh->from); @@ -103,16 +107,12 @@ pgrpcpy(Pgrp *to, Pgrp *from) link = &mh->mount; for(m = f->mount; m; m = m->next) { n = newmount(mh, m->to, m->mflag, m->spec); - if(n == nil) { - runlock(&f->lock); - wunlock(&from->ns); - error(Enomem); - } m->copy = n; pgrpinsert(&order, m); *link = n; link = &n->next; } + poperror(); runlock(&f->lock); } } @@ -124,12 +124,12 @@ pgrpcpy(Pgrp *to, Pgrp *from) m->copy->mountid = mountid.ref++; unlock(&mountid.l); - to->pin = from->pin; - + to->progmode = from->progmode; to->slash = cclone(from->slash); to->dot = cclone(from->dot); to->nodevs = from->nodevs; + poperror(); wunlock(&from->ns); } |
