diff options
author | George Amanakis <[email protected]> | 2021-12-17 21:35:28 +0100 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2023-05-18 11:59:42 -0700 |
commit | 482eeef804f0f325faddb102f112c0f1ec86a1b6 (patch) | |
tree | f5b052e7fed06ad527285841ec6de2d7503d39ed /tests/zfs-tests/include | |
parent | e34e15ed6d1882d29e314321b7642305d99f1b78 (diff) |
Teach zpool scrub to scrub only blocks in error log
Added a flag '-e' in zpool scrub to scrub only blocks in error log. A
user can pause, resume and cancel the error scrub by passing additional
command line arguments -p -s just like a regular scrub. This involves
adding a new flag, creating new libzfs interfaces, a new ioctl, and the
actual iteration and read-issuing logic. Error scrubbing is executed in
multiple txg to make sure pool performance is not affected.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Co-authored-by: TulsiJain [email protected]
Signed-off-by: George Amanakis <[email protected]>
Closes #8995
Closes #12355
Diffstat (limited to 'tests/zfs-tests/include')
-rw-r--r-- | tests/zfs-tests/include/libtest.shlib | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/zfs-tests/include/libtest.shlib b/tests/zfs-tests/include/libtest.shlib index 8521f271b..133f8387d 100644 --- a/tests/zfs-tests/include/libtest.shlib +++ b/tests/zfs-tests/include/libtest.shlib @@ -1969,6 +1969,12 @@ function is_pool_scrubbing #pool <verbose> check_pool_status "$1" "scan" "scrub in progress since " $2 } +function is_pool_error_scrubbing #pool <verbose> +{ + check_pool_status "$1" "scrub" "error scrub in progress since " $2 + return $? +} + function is_pool_scrubbed #pool <verbose> { check_pool_status "$1" "scan" "scrub repaired" $2 @@ -1979,11 +1985,23 @@ function is_pool_scrub_stopped #pool <verbose> check_pool_status "$1" "scan" "scrub canceled" $2 } +function is_pool_error_scrub_stopped #pool <verbose> +{ + check_pool_status "$1" "scrub" "error scrub canceled on " $2 + return $? +} + function is_pool_scrub_paused #pool <verbose> { check_pool_status "$1" "scan" "scrub paused since " $2 } +function is_pool_error_scrub_paused #pool <verbose> +{ + check_pool_status "$1" "scrub" "error scrub paused since " $2 + return $? +} + function is_pool_removing #pool { check_pool_status "$1" "remove" "in progress since " |