Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Jun 2009 06:37:08 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r195095 - user/kmacy/releng_7_2_fcs/sys/vm
Message-ID:  <200906270637.n5R6b8rC050353@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Sat Jun 27 06:37:08 2009
New Revision: 195095
URL: http://svn.freebsd.org/changeset/base/195095

Log:
  add note that change is a band-aid

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

Modified: user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c	Sat Jun 27 06:05:10 2009	(r195094)
+++ user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c	Sat Jun 27 06:37:08 2009	(r195095)
@@ -1089,6 +1089,15 @@ unlock_and_continue:
 
 		next = TAILQ_NEXT(m, pageq);
 		object = m->object;
+
+		/*
+		 * XXX note that the object == NULL check is a band-aid
+		 * that narrows the race - but really we need to acquire the
+		 * page lock before checking the validity of the object pointer
+		 * this in turn requires that we trylock the page before
+		 * trylocking the object which in turn complicates error
+		 * handling slightly
+		 */
 		if ((object == NULL) || (m->flags & PG_MARKER) != 0) {
 			m = next;
 			continue;



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