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);
}
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"