From 2c4dd58af65f3a6ca92d1308410c1a8daa282ea8 Mon Sep 17 00:00:00 2001 From: Matthew Ahrens Date: Fri, 15 Jul 2022 09:34:04 -0700 Subject: [PATCH] DLPX-81993 zoa panic in zettacache::block_allocator::SlabTrait>::max_size (#516) --- cmd/zfs_object_agent/zettacache/src/block_allocator/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/zfs_object_agent/zettacache/src/block_allocator/mod.rs b/cmd/zfs_object_agent/zettacache/src/block_allocator/mod.rs index 2df0048ba995..aea046c934aa 100644 --- a/cmd/zfs_object_agent/zettacache/src/block_allocator/mod.rs +++ b/cmd/zfs_object_agent/zettacache/src/block_allocator/mod.rs @@ -1045,14 +1045,14 @@ impl BlockAllocatorBuilder { disk_stats.free_bytes += slab.free_space(); disk_stats.alloc_bytes += slab.allocated_space(); - if matches!(slab.inner, SlabEnum::Evacuating(_)) { + let evacuating = matches!(slab.inner, SlabEnum::Evacuating(_)); + if evacuating { evacuating_slabs.push(slab.id); } - if let Some(&disk) = removing_disks.get(&slab_disk) { noalloc_state.get_mut_or_default(disk).insert(slab.id); disk_stats.noalloc_bytes += slab.free_space(); - } else { + } else if !evacuating { assert_eq!(disk_stats.noalloc_bytes, 0); slabs_by_bucket .entry(SlabBucketSize(slab.max_size()))