From e8e1e613ed999f05f90207b23c33044a2a8f9421 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 2 Nov 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-11-02 --- port/devmnt.c | 6 ++++-- port/qio.c | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/port/devmnt.c b/port/devmnt.c index dddf3ce22e30c3e3d49b3122fc63dd99e9418354..71ebb4597cf39185d81103bd5506aed158a14fa7 100644 --- a/port/devmnt.c +++ b/port/devmnt.c @@ -505,9 +505,11 @@ mntread(Chan *c, void *buf, long n, ulong offset) if(cached) { nc = cread(c, buf, n, offset); if(nc > 0) { + n -= nc; + if(n == 0) + return nc; buf = (uchar*)buf+nc; offset += nc; - n -= nc; } } @@ -570,7 +572,7 @@ mntrdwr(int type, Chan *c, void *buf, long n, ulong offset) uba += nr; cnt += nr; n -= nr; - if(nr != r->request.count || n == 0) + if(nr != r->request.count || n == 0 || up->nnote) break; } return cnt; diff --git a/port/qio.c b/port/qio.c index 862758e5b8436c9bde660bcd006bb14e15c2e27c..ffd92f3c08ff52c13a4738e1460e7d63908446d4 100644 --- a/port/qio.c +++ b/port/qio.c @@ -154,9 +154,9 @@ iallockproc(void *arg) * increase goal if we've been drained. */ if(cl->have == 0){ - i = cl->goal>>2; + i = cl->goal>>1; if(cl->wanted > i) - cl->goal += cl->wanted; + cl->goal += 2*cl->wanted; else cl->goal += i; cl->wanted = 0; @@ -195,7 +195,7 @@ iallocinit(void) for(pow = Minpow; pow <= Maxpow; pow++){ cl = &arena.alloc[pow]; - cl->goal = Maxpow-pow + 4; + cl->goal = Maxpow-pow + 16; } /* start garbage collector */