diff options
author | Brian Behlendorf <[email protected]> | 2019-03-21 10:13:01 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2019-03-21 10:13:01 -0700 |
commit | 066da71e7fe32f569736b53454b034937d0d3813 (patch) | |
tree | 2b4723e49c2e4720cb600da78cc5b60f618742ba /tests/runfiles | |
parent | 304d469dcdcb47a6c4e993a62007a8b7c81a212a (diff) |
Improve `zpool labelclear`
1) As implemented the `zpool labelclear` command overwrites
the calculated offsets of all four vdev labels even when only a
single valid label is found. If the device as been re-purposed
but still contains a valid label this can result in space no
longer owned by ZFS being zeroed. Prevent this by verifying
every label removed is intact before it's overwritten.
2) Address a small bug in zpool_do_labelclear() which prevented
labelclear from working on file vdevs. Only block devices support
BLKFLSBUF, try the ioctl() but when it's reported as unsupported
this should not be fatal.
3) Fix `zpool labelclear` so it can be run on vdevs which were
removed from the pool with `zpool remove`. Additionally, allow
intact but partial labels to be cleared as in the case of a failed
`zpool attach` or `zpool replace`.
4) Remove LABELCLEAR and LABELREAD variables for test cases.
Reviewed-by: Matt Ahrens <[email protected]>
Reviewed-by: Tim Chase <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #8500
Closes #8373
Closes #6261
Diffstat (limited to 'tests/runfiles')
-rw-r--r-- | tests/runfiles/linux.run | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run index 93f0c03aa..9537798a9 100644 --- a/tests/runfiles/linux.run +++ b/tests/runfiles/linux.run @@ -392,7 +392,8 @@ tests = ['zpool_import_001_pos', 'zpool_import_002_pos', tags = ['functional', 'cli_root', 'zpool_import'] [tests/functional/cli_root/zpool_labelclear] -tests = ['zpool_labelclear_active', 'zpool_labelclear_exported'] +tests = ['zpool_labelclear_active', 'zpool_labelclear_exported', + 'zpool_labelclear_removed', 'zpool_labelclear_valid'] pre = post = tags = ['functional', 'cli_root', 'zpool_labelclear'] |