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>