From owner-svn-src-head@FreeBSD.ORG Sun Aug 11 21:15:04 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D44C8383; Sun, 11 Aug 2013 21:15:04 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C1B282814; Sun, 11 Aug 2013 21:15:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BLF4XP034079; Sun, 11 Aug 2013 21:15:04 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BLF4Hf034078; Sun, 11 Aug 2013 21:15:04 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201308112115.r7BLF4Hf034078@svn.freebsd.org> From: Attilio Rao Date: Sun, 11 Aug 2013 21:15:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254228 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:15:04 -0000 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); }