The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=8e8fd66ca06ff73f3b4bdf3f7735d727a881cf60
commit 8e8fd66ca06ff73f3b4bdf3f7735d727a881cf60 Author: Gleb Smirnoff <gleb...@freebsd.org> AuthorDate: 2025-07-11 03:26:01 +0000 Commit: Gleb Smirnoff <gleb...@freebsd.org> CommitDate: 2025-07-11 03:26:01 +0000 libsa/zfs: fail earlier in vdev_probe() if can't find ZPOOL_CONFIG_GUID Don't store any configuration in memory from such weird label. --- stand/libsa/zfs/zfsimpl.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/stand/libsa/zfs/zfsimpl.c b/stand/libsa/zfs/zfsimpl.c index a31fa24f358e..c7dc72561eff 100644 --- a/stand/libsa/zfs/zfsimpl.c +++ b/stand/libsa/zfs/zfsimpl.c @@ -2067,7 +2067,9 @@ vdev_probe(vdev_phys_read_t *_read, vdev_phys_write_t *_write, void *priv, nvlist_find(nvl, ZPOOL_CONFIG_POOL_GUID, DATA_TYPE_UINT64, NULL, &pool_guid, NULL) != 0 || nvlist_find(nvl, ZPOOL_CONFIG_POOL_NAME, DATA_TYPE_STRING, - NULL, &pool_name, &namelen) != 0) { + NULL, &pool_name, &namelen) != 0 || + nvlist_find(nvl, ZPOOL_CONFIG_GUID, DATA_TYPE_UINT64, + NULL, &guid, NULL) != 0) { /* * Cache and spare devices end up here - just ignore * them. @@ -2106,11 +2108,6 @@ vdev_probe(vdev_phys_read_t *_read, vdev_phys_write_t *_write, void *priv, * be some kind of alias (overlapping slices, dangerously dedicated * disks etc). */ - if (nvlist_find(nvl, ZPOOL_CONFIG_GUID, DATA_TYPE_UINT64, - NULL, &guid, NULL) != 0) { - nvlist_destroy(nvl); - return (EIO); - } vdev = vdev_find(guid); /* Has this vdev already been inited? */ if (vdev && vdev->v_phys_read) {