diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 455af834afe..9f6b3c663a3 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_object.c,v 1.143 1999/02/03 01:57:17 dillon Exp $ + * $Id: vm_object.c,v 1.144 1999/02/04 17:47:52 dillon Exp $ */ /* @@ -936,6 +936,10 @@ vm_object_shadow(object, offset, length) * Our caller changes his reference to point to the new object, * removing a reference to the source object. Net result: no change * of reference count. + * + * Try to optimize the result object's page color when shadowing + * in order to maintain page coloring consistancy in the combined + * shadowed object. */ result->backing_object = source; if (source) { @@ -943,6 +947,7 @@ vm_object_shadow(object, offset, length) vm_object_clear_flag(source, OBJ_ONEMAPPING); source->shadow_count++; source->generation++; + result->pg_color = (source->pg_color + OFF_TO_IDX(*offset)) & PQ_L2_MASK; } /*