From 385a811b02e63d28370caf0977d27948269c63e1 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 26 Feb 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-02-26 --- port/devcons.c | 4 +--- port/devroot.c | 2 +- port/devsrv.c | 5 +++++ port/fault.c | 1 - 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/port/devcons.c b/port/devcons.c index 840254e0cf6b4dc8d27cc180a35d35d6e4e559c2..024d13c2a274b0ac1a32005affc1c4c58a341e7a 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -448,9 +448,6 @@ consopen(Chan *c, int omode) error(Eperm); incref(&ctl); break; - case Qswap: - kickpager(); /* start a pager if not already started */ - break; } c->aux = 0; return devopen(c, omode, consdir, NCONS, devgen); @@ -850,6 +847,7 @@ conswrite(Chan *c, void *va, long n, ulong offset) break; case Qswap: + kickpager(); /* start a pager if not already started */ if(conf.cntrlp && strcmp(u->p->user, eve) != 0) error(Eperm); if(n >= sizeof buf) diff --git a/port/devroot.c b/port/devroot.c index 1050768b9bfd2f0d5537530162e17a269d02ddc1..d8bb79a9a99211b6cb166d0c07bf73811761e638 100644 --- a/port/devroot.c +++ b/port/devroot.c @@ -95,7 +95,7 @@ rootwalk(Chan *c, char *name) return 1; } if((c->qid.path & ~CHDIR) != Qdir) - error(Enonexist); + return 0; return devwalk(c, name, rootdir, nroot, rootgen); } diff --git a/port/devsrv.c b/port/devsrv.c index 0486b6fd2dcc73ad2a726a578bec6c8e472a263a..49b81faa3594bed4cc70b362e969557f9d70c091 100644 --- a/port/devsrv.c +++ b/port/devsrv.c @@ -199,9 +199,14 @@ srvwrite(Chan *c, void *va, long n, ulong offset) fd = strtoul(buf, 0, 0); f = u->p->fgrp; lock(f); + if(waserror()){ + unlock(f); + nexterror(); + } fdtochan(fd, -1, 0); /* error check only */ srv[i].chan = f->fd[fd]; incref(srv[i].chan); unlock(f); + poperror(); return n; } diff --git a/port/fault.c b/port/fault.c index 75fbb02fef2d36fef75c8e1ced23768c5e4ac313..b2b8303cbee020df56958bf34514da7daa0c7568 100644 --- a/port/fault.c +++ b/port/fault.c @@ -280,7 +280,6 @@ validaddr(ulong addr, ulong len, int write) } pprint("invalid address 0x%lux in sys call pc=0x%lux", addr, userpc()); - postnote(u->p, 1, "sys: bad address", NDebug); error(Ebadarg); }