1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-27 01:55:32 +03:00

udev: never ask libblkid for detecting superblocks with bad checksums (#6215)

Previously, we'd ask liblkid to also tell us about recognized
superblocks with bad checksums. We'd then log about them and ignore
them. This however created ambuigity problems, see #6110: the
BLKID_SUBLKS_BADCSUM is not as innocent as it appears.

This patch drops bad checksum handling and we ignore all such superblocks
entirely again, as it was the status quo ante
d47f6ca5f9 (where this was snuck in).

Ideally, libblkid would be changed to avoid this ambiguity problems for
bad checksums, but that's not going to happen any time soon, according
to @karelzak.

Fixes: #6110
This commit is contained in:
Lennart Poettering 2017-06-28 19:27:40 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent cd2dfc6fae
commit 1f47f5504c

View File

@ -229,7 +229,6 @@ static int builtin_blkid(struct udev_device *dev, int argc, char *argv[], bool t
_cleanup_blkid_free_probe_ blkid_probe pr = NULL;
const char *data;
const char *name;
const char *prtype = NULL;
int nvals;
int i;
int err = 0;
@ -265,8 +264,7 @@ static int builtin_blkid(struct udev_device *dev, int argc, char *argv[], bool t
blkid_probe_set_superblocks_flags(pr,
BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID |
BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE |
BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION |
BLKID_SUBLKS_BADCSUM);
BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION);
if (noraid)
blkid_probe_filter_superblocks_usage(pr, BLKID_FLTR_NOTIN, BLKID_USAGE_RAID);
@ -288,15 +286,6 @@ static int builtin_blkid(struct udev_device *dev, int argc, char *argv[], bool t
err = probe_superblocks(pr);
if (err < 0)
goto out;
if (blkid_probe_has_value(pr, "SBBADCSUM")) {
if (!blkid_probe_lookup_value(pr, "TYPE", &prtype, NULL))
log_warning("incorrect %s checksum on %s",
prtype, udev_device_get_devnode(dev));
else
log_warning("incorrect checksum on %s",
udev_device_get_devnode(dev));
goto out;
}
/* If we are a partition then our parent passed on the root
* partition UUID to us */