From 1cf62785d11ca9c07893c67d4d9285f2ae96951a Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 29 Mar 1996 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1996-03-29 --- port/cache.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/port/cache.c b/port/cache.c index f9b5f20e0db38125c67378823edad80c9d686308..a98ba635e0b6e30f8b262409e5eb6171c8c6d68d 100644 --- a/port/cache.c +++ b/port/cache.c @@ -526,23 +526,19 @@ cwrite(Chan* c, uchar *buf, int len, ulong offset) p = f; } - if(f != 0) { + if(f != 0 && offset < f->start+f->len) { o = offset - f->start; - if(o >= 0) { - n = f->len - o; - if(n > len) - n = len; - if(n > 0) { - if(cpgmove(f, buf, o, n)) { - buf += n; - len -= n; - offset += n; - } - if(len == 0) { - qunlock(m); - return; - } - } + n = f->len - o; + if(n > len) + n = len; + if(cpgmove(f, buf, o, n)) { + len -= n; + if(len == 0) { + qunlock(m); + return; + } + offset += n; + buf += n; } }