Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Aug 2013 21:15:04 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254228 - head/sys/vm
Message-ID:  <201308112115.r7BLF4Hf034078@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Sun Aug 11 21:15:04 2013
New Revision: 254228
URL: http://svnweb.freebsd.org/changeset/base/254228

Log:
  Correct the recovery logic in vm_page_alloc_contig:
  what is really needed on this code snipped is that all the pages that
  are already fully inserted gets fully freed, while for the others the
  object removal itself might be skipped, hence the object might be set to
  NULL.
  
  Sponsored by:	EMC / Isilon storage division
  Reported by:	alc, kib
  Reviewed by:	alc

Modified:
  head/sys/vm/vm_page.c

Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c	Sun Aug 11 20:46:05 2013	(r254227)
+++ head/sys/vm/vm_page.c	Sun Aug 11 21:15:04 2013	(r254228)
@@ -1807,11 +1807,9 @@ retry:
 				    &deferred_vdrop_list);
 				if (vm_paging_needed())
 					pagedaemon_wakeup();
-				for (m = m_ret, m_tmp = m_ret;
+				for (m_tmp = m, m = m_ret;
 				    m < &m_ret[npages]; m++) {
-					if (m_tmp < m)
-						m_tmp++;
-					else
+					if (m >= m_tmp)
 						m->object = NULL;
 					vm_page_free(m);
 				}



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