Comment 2 for bug 1842437

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

udev builtin blkid ignores the checksum error:

nilfs_valid_sb() @ nilfs.c:96

 return blkid_probe_verify_csum(pr, crc, le32_to_cpu(sb->s_sum));

blkid_probe_verify_csum() @ probe.c:1576-1687

        if (csum != expected) {
  ...
                DBG(LOWPROBE, ul_debug(
                                "incorrect checksum for type %s,"
                                " got %"PRIX64", expected %"PRIX64"",
  ...
                 * Accept bad checksum if BLKID_SUBLKS_BADCSUM flags is set
  ...
                        blkid_probe_set_value(pr, "SBBADCSUM", (unsigned char *) "1", 2);
                        goto accept;
                }
                return 0; /* bad checksum */
 ...
 accept:
  return 1;

from debug:

 586: libblkid: LOWPROBE: incorrect checksum for type nilfs2, got 56C7A81B, expected 2D2D206B
 586: libblkid: LOWPROBE: assigning SBBADCSUM [superblocks]

and udev blkid uses that flag:

builtin_blkid() @ udev-builtin-blkid.c:264-268

        blkid_probe_set_superblocks_flags(pr,
  ...
                BLKID_SUBLKS_BADCSUM);