X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fgpt-auto-generator%2Fgpt-auto-generator.c;h=05934da82f8a18a8495bbade7ebe4357112811f9;hb=b1e90ec515408aec2702522f6f68c4920b56375b;hp=017c35dcd6414014745169e708296ee32946527f;hpb=96115cdfe0241ae9b4e7177cd3874c0a93d00b39;p=elogind.git diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c index 017c35dcd..05934da82 100644 --- a/src/gpt-auto-generator/gpt-auto-generator.c +++ b/src/gpt-auto-generator/gpt-auto-generator.c @@ -74,10 +74,8 @@ static int verify_gpt_partition(const char *node, sd_id128_t *type, unsigned *nr errno = 0; r = blkid_do_safeprobe(b); - if (r == -2) - return -ENODEV; - else if (r == 1) - return -ENODEV; + if (r == -2 || r == 1) /* no result or uncertain */ + return -EBADSLT; else if (r != 0) return errno ? -errno : -EIO; @@ -297,6 +295,9 @@ static int enumerate_partitions(struct udev *udev, dev_t dev) { r = verify_gpt_partition(node, &type_id, &nr, &fstype); if (r < 0) { + /* skip child devices which are not detected properly */ + if (r == -EBADSLT) + continue; log_error("Failed to verify GPT partition %s: %s", node, strerror(-r)); return r;