diff options
author | Gabriel de Perthuis | 2013-09-06 19:18:15 +0200 |
---|---|---|
committer | Karel Zak | 2013-09-11 16:36:16 +0200 |
commit | 02f3c12a5f71b3e70f8ccbf311b88808756b5d17 (patch) | |
tree | dd6c2baa69007bde8667e92510cc5326e27ba93d /libblkid/src/probe.c | |
parent | libblkid: use separate function to verify checksums (diff) | |
download | kernel-qcow2-util-linux-02f3c12a5f71b3e70f8ccbf311b88808756b5d17.tar.gz kernel-qcow2-util-linux-02f3c12a5f71b3e70f8ccbf311b88808756b5d17.tar.xz kernel-qcow2-util-linux-02f3c12a5f71b3e70f8ccbf311b88808756b5d17.zip |
wipefs: Also wipe superblocks with bad checksums
[kzak@redhat.com: - move BLKID_SUBLKS_BADCSUM login to
blkid_probe_verify_csum()]
Signed-off-by: Gabriel de Perthuis <g2p.code@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libblkid/src/probe.c')
-rw-r--r-- | libblkid/src/probe.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index 6e3ae42dc..29223a664 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -1354,15 +1354,19 @@ int blkid_probe_set_magic(blkid_probe pr, blkid_loff_t offset, int blkid_probe_verify_csum(blkid_probe pr, uint64_t csum, uint64_t expected) { if (csum != expected) { + struct blkid_chain *chn = blkid_probe_get_chain(pr); + DBG(LOWPROBE, blkid_debug( "incorrect checksum for type %s," " got %jX, expected %jX", blkid_probe_get_probername(pr), csum, expected)); - return 0; + + if (!(chn->flags & BLKID_SUBLKS_BADCSUM)) + return 0; } - return 1; + return 1; /* checksum accepted */ } /** |