From af5f5800c10d6a1bf39b4899e8a1ecf2a99f1bd1 Mon Sep 17 00:00:00 2001 From: George Amanakis Date: Fri, 29 Sep 2023 18:24:12 +0200 Subject: [PATCH] Report ashift of L2ARC devices in zdb Commit 8af1104f does not actually store the ashift of cache devices in their label. However, in order to facilitate reporting the ashift through zdb, we enable this in the present commit. We also document how the retrieval of the ashift is done. Signed-off-by: George Amanakis --- module/zfs/vdev_label.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/module/zfs/vdev_label.c b/module/zfs/vdev_label.c index a5c76808f2d2..a2e5524a8391 100644 --- a/module/zfs/vdev_label.c +++ b/module/zfs/vdev_label.c @@ -1138,6 +1138,16 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason) POOL_STATE_L2CACHE) == 0); VERIFY(nvlist_add_uint64(label, ZPOOL_CONFIG_GUID, vd->vdev_guid) == 0); + + /* + * This is merely to facilitate reporting the ashift of the + * cache device through zdb. The actual retrieval of the + * ashift (in vdev_alloc()) uses the nvlist + * spa->spa_l2cache->sav_config (populated in + * spa_ld_open_aux_vdevs()). + */ + VERIFY(nvlist_add_uint64(label, ZPOOL_CONFIG_ASHIFT, + vd->vdev_ashift) == 0); } else { uint64_t txg = 0ULL;