From d9885b3776f1ec1032e6edd1f60424d66d419113 Mon Sep 17 00:00:00 2001 From: Ameer Hamza Date: Thu, 4 Jan 2024 19:02:50 +0500 Subject: fix: Uber block label not always found for aux vdevs When spare or l2cache (aux) vdev is added during pool creation, spa->spa_uberblock is not dumped until that point. Subsequently, the aux label is never synchronized after its initial creation, resulting in the uberblock label remaining undumped. The uberblock is crucial for lib_blkid in identifying the ZFS partition type. To address this issue, we now ensure sync of the uberblock label once if it's not dumped initially. Reviewed-by: Umer Saleem Reviewed-by: Alexander Motin Signed-off-by: Ameer Hamza Closes #15737 --- include/sys/spa_impl.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h index ee91816ac..0cd0c4720 100644 --- a/include/sys/spa_impl.h +++ b/include/sys/spa_impl.h @@ -278,6 +278,7 @@ struct spa { spa_aux_vdev_t spa_spares; /* hot spares */ spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */ + boolean_t spa_aux_sync_uber; /* need to sync aux uber */ nvlist_t *spa_label_features; /* Features for reading MOS */ uint64_t spa_config_object; /* MOS object for pool config */ uint64_t spa_config_generation; /* config generation number */ -- cgit v1.2.3