From 7608362b58a1485e1ea1e5e91492bbc33e8a7bf3 Mon Sep 17 00:00:00 2001 From: yamt Date: Thu, 7 Feb 2008 12:24:16 +0000 Subject: [PATCH] swapcluster_flush: handle nused==0, which can happen if swapcluster_add failed. PR/37669 from Andrew Doran. --- sys/uvm/uvm_pdaemon.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/uvm/uvm_pdaemon.c b/sys/uvm/uvm_pdaemon.c index 7cac2f934785..38ee3cc720aa 100644 --- a/sys/uvm/uvm_pdaemon.c +++ b/sys/uvm/uvm_pdaemon.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pdaemon.c,v 1.90 2008/01/28 12:22:47 yamt Exp $ */ +/* $NetBSD: uvm_pdaemon.c,v 1.91 2008/02/07 12:24:16 yamt Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -71,7 +71,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: uvm_pdaemon.c,v 1.90 2008/01/28 12:22:47 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_pdaemon.c,v 1.91 2008/02/07 12:24:16 yamt Exp $"); #include "opt_uvmhist.h" #include "opt_readahead.h" @@ -533,10 +533,12 @@ swapcluster_flush(struct swapcluster *swc, bool now) * now start the pageout. */ - uvmexp.pdpageouts++; - uvm_pageout_start(nused); - error = uvm_swap_put(slot, swc->swc_pages, nused, 0); - KASSERT(error == 0); + if (nused > 0) { + uvmexp.pdpageouts++; + uvm_pageout_start(nused); + error = uvm_swap_put(slot, swc->swc_pages, nused, 0); + KASSERT(error == 0); + } /* * zero swslot to indicate that we are