mirror_zfs/cmd/zpool
Brian Behlendorf e5ca94f21e Fix 'zpool add' safety check corner cases
Three cases were discovered where 'zpool add' would fail to
warn when adding vdevs to a pool with a mismatched replication
level.  These are:

  1. When a pool contains mixed file and disk vdevs.
  2. When a pool contains an active dRAID distributed spare
  3. When a pool contains an active hot spare

The lack of warnings are caused by get_replication() assessing
the current pool configuration an inconsistent and disabling
the mismatched replication check for the new pool configuration
after 'zpool add'.  This change updates get_replication() to
be slightly more tolerant in the non-fatal case.

The zpool_add_010_pos.ksh test case was split in to separate
tests: zpool_add_warn_create.ksh, pool_add_warn_degraded.ksh,
and zpool_add_warn_removal.  These test were extended to
include coverage for dRAID pools and the three scenarios
described above.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #17780
2025-10-21 11:02:35 -07:00
..
compatibility.d Update compatibility.d files 2024-10-02 20:59:35 -07:00
os GCC 15: Fix unterminated-string-initialization (#17244) 2025-04-16 09:59:45 -07:00
zpool.d zed: misc vdev_enc_sysfs_path fixes 2023-11-07 09:09:24 -08:00
Makefile.am Update compatibility.d files 2024-10-02 20:59:35 -07:00
zpool_iter.c SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
zpool_main.c zpool: clarify ZPOOL_STATUS_REMOVED_DEV status message 2025-06-17 10:50:26 -07:00
zpool_util.c SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
zpool_util.h SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
zpool_vdev.c Fix 'zpool add' safety check corner cases 2025-10-21 11:02:35 -07:00