]> git.lizzy.rs Git - plan9front.git/commitdiff
kernel: make imagereclaim() skip notext pages (prevent it from blowing the mount...
authorcinap_lenrek <cinap_lenrek@gmx.de>
Mon, 27 May 2013 01:26:53 +0000 (03:26 +0200)
committercinap_lenrek <cinap_lenrek@gmx.de>
Mon, 27 May 2013 01:26:53 +0000 (03:26 +0200)
imagereclaim would happily uncache pages from the mountcache (port/cache.c)
without ever getting a Image* released from it. simple fix, just check for
p->image->notext but make sure todo it under the page lock :)

sys/src/9/port/segment.c

index d3ad7cfbbcbb05706eaef25bb7c0ddac9f997d59..c71eb43e654784a7d42dae6d5ee3514e99b1cb3f 100644 (file)
@@ -333,7 +333,7 @@ imagereclaim(void)
         */
        for(p = palloc.tail; p && p->image && (n<1000 || !imagealloc.free); p = p->prev) {
                if(p->ref == 0 && canlock(p)) {
-                       if(p->ref == 0) {
+                       if(p->ref == 0 && p->image && !p->image->notext) {
                                n++;
                                uncachepage(p);
                        }