[Midnightbsd-cvs] src [8492] trunk/sys/kern/vfs_bio.c: do not ignore zero address.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Sep 18 18:37:50 EDT 2016
Revision: 8492
http://svnweb.midnightbsd.org/src/?rev=8492
Author: laffer1
Date: 2016-09-18 18:37:50 -0400 (Sun, 18 Sep 2016)
Log Message:
-----------
do not ignore zero address.
Modified Paths:
--------------
trunk/sys/kern/vfs_bio.c
Modified: trunk/sys/kern/vfs_bio.c
===================================================================
--- trunk/sys/kern/vfs_bio.c 2016-09-18 22:37:30 UTC (rev 8491)
+++ trunk/sys/kern/vfs_bio.c 2016-09-18 22:37:50 UTC (rev 8492)
@@ -2139,15 +2139,16 @@
if (maxsize != bp->b_kvasize) {
vm_offset_t addr = 0;
+ int rv;
bfreekva(bp);
vm_map_lock(buffer_map);
if (vm_map_findspace(buffer_map,
- vm_map_min(buffer_map), maxsize, &addr)) {
+ vm_map_min(buffer_map), maxsize, &addr)) {
/*
- * Uh oh. Buffer map is to fragmented. We
- * must defragment the map.
+ * Buffer map is too fragmented.
+ * We must defragment the map.
*/
atomic_add_int(&bufdefragcnt, 1);
vm_map_unlock(buffer_map);
@@ -2156,22 +2157,21 @@
brelse(bp);
goto restart;
}
- if (addr) {
- vm_map_insert(buffer_map, NULL, 0,
- addr, addr + maxsize,
- VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT);
-
- bp->b_kvabase = (caddr_t) addr;
- bp->b_kvasize = maxsize;
- atomic_add_long(&bufspace, bp->b_kvasize);
- atomic_add_int(&bufreusecnt, 1);
- }
+ rv = vm_map_insert(buffer_map, NULL, 0, addr,
+ addr + maxsize, VM_PROT_ALL, VM_PROT_ALL,
+ MAP_NOFAULT);
+ KASSERT(rv == KERN_SUCCESS,
+ ("vm_map_insert(buffer_map) rv %d", rv));
vm_map_unlock(buffer_map);
+ bp->b_kvabase = (caddr_t)addr;
+ bp->b_kvasize = maxsize;
+ atomic_add_long(&bufspace, bp->b_kvasize);
+ atomic_add_int(&bufreusecnt, 1);
}
bp->b_saveaddr = bp->b_kvabase;
bp->b_data = bp->b_saveaddr;
}
- return(bp);
+ return (bp);
}
/*
More information about the Midnightbsd-cvs
mailing list