zfs/cmd
LOLi 390d679acd Fix 'zpool add' handling of nested interior VDEVs
When replacing a faulted device which was previously handled by a spare
multiple levels of nested interior VDEVs will be present in the pool
configuration; the following example illustrates one of the possible
situations:

   NAME                          STATE     READ WRITE CKSUM
   testpool                      DEGRADED     0     0     0
     raidz1-0                    DEGRADED     0     0     0
       spare-0                   DEGRADED     0     0     0
         replacing-0             DEGRADED     0     0     0
           /var/tmp/fault-dev    UNAVAIL      0     0     0  cannot open
           /var/tmp/replace-dev  ONLINE       0     0     0
         /var/tmp/spare-dev1     ONLINE       0     0     0
       /var/tmp/safe-dev         ONLINE       0     0     0
   spares
     /var/tmp/spare-dev1         INUSE     currently in use

This is safe and allowed, but get_replication() needs to handle this
situation gracefully to let zpool add new devices to the pool.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #6678 
Closes #6996
2017-12-28 10:15:32 -08:00
..
arc_summary Handle broken pipes in arc_summary 2017-12-19 13:19:24 -08:00
arcstat arcstat: flush stdout / outfile after each line 2017-10-26 12:18:49 -07:00
dbufstat Add support for DMU_OTN_* types in dbufstat.py 2017-08-22 11:53:40 -07:00
fsck_zfs Add /sbin/fsck.zfs helper 2013-01-09 16:54:58 -08:00
mount_zfs Honor --with-mounthelperdir where applicable 2017-12-17 14:14:07 -08:00
raidz_test Simplify threads, mutexs, cvs and rwlocks 2017-08-11 08:51:44 -07:00
vdev_id vdev_id: new slot type ses 2017-12-20 09:42:07 -08:00
zdb ZTS: Fix create-o_ashift test case 2017-12-19 10:49:33 -08:00
zed Various ZED fixes 2017-12-08 16:58:41 -08:00
zfs Fix coverity defects: 147480, 147584 2017-10-16 15:32:48 -07:00
zgenhostid Add zgenhostid utility script 2017-07-25 13:22:03 -04:00
zhack Add libtpool (thread pools) 2017-08-09 15:31:08 -07:00
zinject Add corruption failure option to zinject(8) 2017-08-14 15:17:15 -07:00
zpool Fix 'zpool add' handling of nested interior VDEVs 2017-12-28 10:15:32 -08:00
zstreamdump Native Encryption for ZFS on Linux 2017-08-14 10:36:48 -07:00
ztest OpenZFS 8585 - improve batching done in zil_commit() 2017-12-05 09:39:16 -08:00
zvol_id OpenZFS 6314 - buffer overflow in dsl_dataset_name 2016-06-28 13:47:03 -07:00
Makefile.am Retire legacy test infrastructure 2017-08-15 17:26:38 -07:00