--- a/sys/vfs/hammer2/hammer2_bulkfree.c +++ b/sys/vfs/hammer2/hammer2_bulkfree.c @@ -566,9 +566,13 @@ ~(size_t)(HAMMER2_FREEMAP_LEVELN_PSIZE - 1); cbinfo.hmp = hmp; - cbinfo.bmap = kmem_alloc_swapbacked(&cbinfo.kp, size, VM_SUBSYS_HAMMER); cbinfo.dedup = kmalloc(sizeof(*cbinfo.dedup) * HAMMER2_DEDUP_HEUR_SIZE, M_HAMMER2, M_WAITOK | M_ZERO); + cbinfo.bmap = kmem_alloc_swapbacked(&cbinfo.kp, size, VM_SUBSYS_HAMMER); + if (cbinfo.bmap == NULL) { + kfree(cbinfo.dedup, M_HAMMER2); + return ENOMEM; + } kprintf("hammer2: bulkfree buf=%jdM\n", (intmax_t)size / (1024 * 1024));