mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
zdb -k does not work on Linux when used with -e
This minor bug was introduced with the port of the feature from OpenZFS to ZoL. This patch fixes the issue that was caused by a minor re-ordering from the original code. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Tim Chase <tim@chase2k.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Serapheim Dimitropoulos <serapheim@delphix.com> Closes #8001
This commit is contained in:
committed by
Brian Behlendorf
parent
63a77ae3cf
commit
0a544c174d
@@ -19,7 +19,7 @@
|
||||
|
||||
#
|
||||
# DESCRIPTION:
|
||||
# Ensure that checkpoint verification within zdb wowrks as
|
||||
# Ensure that checkpoint verification within zdb works as
|
||||
# we expect.
|
||||
#
|
||||
# STRATEGY:
|
||||
@@ -30,10 +30,12 @@
|
||||
# 5. Verify zdb finds checkpoint when run on current state
|
||||
# 6. Verify zdb finds old dataset when run on checkpointed
|
||||
# state
|
||||
# 7. Discard checkpoint
|
||||
# 8. Verify zdb does not find the checkpoint anymore in the
|
||||
# 7. Export pool, and verify the same things with zdb to
|
||||
# test the -e option.
|
||||
# 8. Import pool and discard checkpoint
|
||||
# 9. Verify zdb does not find the checkpoint anymore in the
|
||||
# current state.
|
||||
# 9. Verify that zdb cannot find the checkpointed state
|
||||
# 10.Verify that zdb cannot find the checkpointed state
|
||||
# anymore when trying to open it for verification.
|
||||
#
|
||||
|
||||
@@ -68,6 +70,22 @@ zdb $TESTPOOL | grep "Dataset $FS1" && \
|
||||
zdb -k $TESTPOOL | grep "Dataset $CHECKPOINTED_FS1" || \
|
||||
log_fail "zdb could not find destroyed dataset in checkpoint"
|
||||
|
||||
log_must zpool export $TESTPOOL
|
||||
|
||||
zdb -e $TESTPOOL | grep "Checkpointed uberblock found" || \
|
||||
log_fail "zdb could not find checkpointed uberblock"
|
||||
|
||||
zdb -k -e $TESTPOOL | grep "Checkpointed uberblock found" && \
|
||||
log_fail "zdb found checkpointed uberblock in checkpointed state"
|
||||
|
||||
zdb -e $TESTPOOL | grep "Dataset $FS1" && \
|
||||
log_fail "zdb found destroyed dataset in current state"
|
||||
|
||||
zdb -k -e $TESTPOOL | grep "Dataset $CHECKPOINTED_FS1" || \
|
||||
log_fail "zdb could not find destroyed dataset in checkpoint"
|
||||
|
||||
log_must zpool import $TESTPOOL
|
||||
|
||||
log_must zpool checkpoint -d $TESTPOOL
|
||||
|
||||
zdb $TESTPOOL | grep "Checkpointed uberblock found" && \
|
||||
|
||||
@@ -161,7 +161,16 @@ function cleanup_nested_pool
|
||||
function cleanup_test_pool
|
||||
{
|
||||
log_must zpool destroy $TESTPOOL
|
||||
zpool labelclear -f "$TESTDISK"
|
||||
|
||||
#
|
||||
# We always clear the labels of all disks
|
||||
# between tests so imports from zpool or
|
||||
# or zdb do not get confused with leftover
|
||||
# data from old pools.
|
||||
#
|
||||
for disk in $DISKS; do
|
||||
zpool labelclear -f $disk
|
||||
done
|
||||
}
|
||||
|
||||
function cleanup_nested_pools
|
||||
|
||||
Reference in New Issue
Block a user