Module Name: src Committed By: chs Date: Fri Jan 23 16:13:53 UTC 2015
Modified Files: src/sys/uvm: uvm_map.c Log Message: skip busy anon pages in uvm_map_clean(). we shouldn't be messing with pages that someone else has busy, and uvm_map_clean() is just advisory for amap mappings. To generate a diff of this commit: cvs rdiff -u -r1.331 -r1.332 src/sys/uvm/uvm_map.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/uvm/uvm_map.c diff -u src/sys/uvm/uvm_map.c:1.331 src/sys/uvm/uvm_map.c:1.332 --- src/sys/uvm/uvm_map.c:1.331 Sun Oct 26 01:42:07 2014 +++ src/sys/uvm/uvm_map.c Fri Jan 23 16:13:53 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.c,v 1.331 2014/10/26 01:42:07 christos Exp $ */ +/* $NetBSD: uvm_map.c,v 1.332 2015/01/23 16:13:53 chs Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.331 2014/10/26 01:42:07 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.332 2015/01/23 16:13:53 chs Exp $"); #include "opt_ddb.h" #include "opt_uvmhist.h" @@ -3798,6 +3798,9 @@ uvm_map_clean(struct vm_map *map, vaddr_ if (pg == NULL) { continue; } + if (pg->flags & PG_BUSY) { + continue; + } switch (flags & (PGO_CLEANIT|PGO_FREE|PGO_DEACTIVATE)) {