amap_cow_now: just free the fresh anon on error, no need to dispose it.
This commit is contained in:
parent
e27abe6ff4
commit
e52f8e8779
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: uvm_amap.c,v 1.102 2011/08/06 17:25:03 rmind Exp $ */
|
/* $NetBSD: uvm_amap.c,v 1.103 2011/08/17 20:46:27 rmind Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 Charles D. Cranor and Washington University.
|
* Copyright (c) 1997 Charles D. Cranor and Washington University.
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.102 2011/08/06 17:25:03 rmind Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.103 2011/08/17 20:46:27 rmind Exp $");
|
||||||
|
|
||||||
#include "opt_uvmhist.h"
|
#include "opt_uvmhist.h"
|
||||||
|
|
||||||
|
@ -1039,17 +1039,11 @@ ReStart:
|
||||||
npg = NULL;
|
npg = NULL;
|
||||||
}
|
}
|
||||||
if (nanon == NULL || npg == NULL) {
|
if (nanon == NULL || npg == NULL) {
|
||||||
|
amap_unlock(amap);
|
||||||
/*
|
|
||||||
* XXXCDC: we should cause fork to fail, but we can't.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (nanon) {
|
if (nanon) {
|
||||||
nanon->an_ref--;
|
nanon->an_ref--;
|
||||||
KASSERT(nanon->an_ref == 0);
|
KASSERT(nanon->an_ref == 0);
|
||||||
uvm_anon_freelst(amap, nanon);
|
uvm_anon_free(nanon);
|
||||||
} else {
|
|
||||||
amap_unlock(amap);
|
|
||||||
}
|
}
|
||||||
uvm_wait("cownowpage");
|
uvm_wait("cownowpage");
|
||||||
goto ReStart;
|
goto ReStart;
|
||||||
|
|
Loading…
Reference in New Issue