diff options
author | Chunwei Chen <[email protected]> | 2017-05-25 15:56:12 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-06-01 06:39:42 -0700 |
commit | b870c4b5d716d87ddfb29f28745e639dd635fd5f (patch) | |
tree | cb333fe3b5ec001151b76413d92b745f74e6f6e0 /module/zfs/spa.c | |
parent | 2e9c8dbddfa5d53aa2f9c508e3dc1263d89466ad (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
Diffstat (limited to 'module/zfs/spa.c')
-rw-r--r-- | module/zfs/spa.c | 6 |
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) |