aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_zone.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/vm/vm_zone.c b/sys/vm/vm_zone.c
index b53cfa0220b7..b1007dcd340b 100644
--- a/sys/vm/vm_zone.c
+++ b/sys/vm/vm_zone.c
@@ -334,7 +334,8 @@ _zget(vm_zone_t z)
#ifdef SMP
simple_lock(&z->zlock);
#endif
- zone_kmem_pages += z->zalloc;
+ if (item != NULL)
+ zone_kmem_pages += z->zalloc;
splx(s);
} else {
#ifdef SMP
@@ -344,9 +345,14 @@ _zget(vm_zone_t z)
#ifdef SMP
simple_lock(&z->zlock);
#endif
- zone_kern_pages += z->zalloc;
+ if (item != NULL)
+ zone_kern_pages += z->zalloc;
+ }
+ if (item != NULL) {
+ bzero(item, nbytes);
+ } else {
+ nbytes = 0;
}
- bzero(item, nbytes);
nitems = nbytes / z->zsize;
}
z->ztotal += nitems;