Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Jul 2009 20:52:23 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r195297 - user/kmacy/releng_7_2_fcs/sys/vm
Message-ID:  <200907022052.n62KqNlu054554@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Thu Jul  2 20:52:23 2009
New Revision: 195297
URL: http://svn.freebsd.org/changeset/base/195297

Log:
  - check for page held when freeing a page terminating an object
  - assert that page's object is the same as the locked object

Modified:
  user/kmacy/releng_7_2_fcs/sys/vm/vm_object.c

Modified: user/kmacy/releng_7_2_fcs/sys/vm/vm_object.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/vm/vm_object.c	Thu Jul  2 20:05:21 2009	(r195296)
+++ user/kmacy/releng_7_2_fcs/sys/vm/vm_object.c	Thu Jul  2 20:52:23 2009	(r195297)
@@ -686,7 +686,9 @@ vm_object_terminate(vm_object_t object)
 		KASSERT(!p->busy && (p->oflags & VPO_BUSY) == 0,
 			("vm_object_terminate: freeing busy page %p "
 			"p->busy = %d, p->flags %x\n", p, p->busy, p->flags));
-		if (p->wire_count == 0) {
+		KASSERT(p->object == object,
+		    ("page object changed from %p to %p", object, p->object));
+		if (p->wire_count == 0 && p->hold_count == 0) {
 			vm_page_free(p);
 			cnt.v_pfree++;
 		} else {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907022052.n62KqNlu054554>