summaryrefslogtreecommitdiffstats
path: root/libblkid/src/probe.c
diff options
context:
space:
mode:
authorGabriel de Perthuis2013-09-06 19:18:15 +0200
committerKarel Zak2013-09-11 16:36:16 +0200
commit02f3c12a5f71b3e70f8ccbf311b88808756b5d17 (patch)
treedd6c2baa69007bde8667e92510cc5326e27ba93d /libblkid/src/probe.c
parentlibblkid: use separate function to verify checksums (diff)
downloadkernel-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.c8
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 */
}
/**