summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChunwei Chen <[email protected]>2017-05-25 15:56:12 -0700
committerBrian Behlendorf <[email protected]>2017-06-01 06:39:42 -0700
commitb870c4b5d716d87ddfb29f28745e639dd635fd5f (patch)
treecb333fe3b5ec001151b76413d92b745f74e6f6e0
parent2e9c8dbddfa5d53aa2f9c508e3dc1263d89466ad (diff)
Fix import wrong spare/l2 device when path change
If, for example, your aux device was /dev/sdc, but now the aux device is removed and /dev/sdc points to other device. zpool import will still use that device and corrupt it. The problem is that the spa_validate_aux in spa_import, rather than validate the on-disk label, it would actually write label to disk. We remove them since spa_load_{spares,l2cache} seems to do everything we need and they would actually validate on-disk label. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Chunwei Chen <[email protected]> Closes #6158
-rw-r--r--module/zfs/spa.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c
index 70756ce49..031535321 100644
--- a/module/zfs/spa.c
+++ b/module/zfs/spa.c
@@ -4114,12 +4114,6 @@ spa_import(char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags)
VERIFY(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE,
&nvroot) == 0);
- if (error == 0)
- error = spa_validate_aux(spa, nvroot, -1ULL,
- VDEV_ALLOC_SPARE);
- if (error == 0)
- error = spa_validate_aux(spa, nvroot, -1ULL,
- VDEV_ALLOC_L2CACHE);
spa_config_exit(spa, SCL_ALL, FTAG);
if (props != NULL)