Blame SOURCES/0055-Fix-the-error-path-in-set_disk_and_part_name.patch

4e0e09
From 74aa359f7474040aef2bd18b66201412f853b5c4 Mon Sep 17 00:00:00 2001
4e0e09
From: Peter Jones <pjones@redhat.com>
4e0e09
Date: Wed, 2 Oct 2019 17:01:00 -0400
4e0e09
Subject: [PATCH 55/63] Fix the error path in set_disk_and_part_name()
4e0e09
4e0e09
Signed-off-by: Peter Jones <pjones@redhat.com>
4e0e09
---
4e0e09
 src/linux.c | 10 +++++++++-
4e0e09
 1 file changed, 9 insertions(+), 1 deletion(-)
4e0e09
4e0e09
diff --git a/src/linux.c b/src/linux.c
4e0e09
index 45f07d3913c..73c67cbafd3 100644
4e0e09
--- a/src/linux.c
4e0e09
+++ b/src/linux.c
4e0e09
@@ -169,6 +169,8 @@ set_disk_name(struct device *dev, const char * const fmt, ...)
4e0e09
 int HIDDEN
4e0e09
 set_disk_and_part_name(struct device *dev)
4e0e09
 {
4e0e09
+	int rc = -1;
4e0e09
+
4e0e09
 	/*
4e0e09
 	 * results are like such:
4e0e09
 	 * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART
4e0e09
@@ -200,6 +202,7 @@ set_disk_and_part_name(struct device *dev)
4e0e09
 	        set_disk_name(dev, "%s", penultimate);
4e0e09
 	        set_part_name(dev, "%s", ultimate);
4e0e09
 	        debug("disk:%s part:%s", penultimate, ultimate);
4e0e09
+		rc = 0;
4e0e09
 	} else if (ultimate && approximate && !strcmp(approximate, "nvme")) {
4e0e09
 	        /*
4e0e09
 	         * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1
4e0e09
@@ -207,6 +210,7 @@ set_disk_and_part_name(struct device *dev)
4e0e09
 	        set_disk_name(dev, "%s", ultimate);
4e0e09
 	        set_part_name(dev, "%sp%d", ultimate, dev->part);
4e0e09
 	        debug("disk:%s part:%sp%d", ultimate, ultimate, dev->part);
4e0e09
+		rc = 0;
4e0e09
 	} else if (ultimate && penultimate && !strcmp(penultimate, "block")) {
4e0e09
 	        /*
4e0e09
 	         * 253:0 -> ../../devices/virtual/block/dm-0 (... I guess)
4e0e09
@@ -220,15 +224,19 @@ set_disk_and_part_name(struct device *dev)
4e0e09
 	        set_disk_name(dev, "%s", ultimate);
4e0e09
 	        set_part_name(dev, "%s%d", ultimate, dev->part);
4e0e09
 	        debug("disk:%s part:%s%d", ultimate, ultimate, dev->part);
4e0e09
+		rc = 0;
4e0e09
 	} else if (ultimate && approximate && !strcmp(approximate, "mtd")) {
4e0e09
 	        /*
4e0e09
 	         * 31:0 -> ../../devices/platform/1e000000.palmbus/1e000b00.spi/spi_master/spi32766/spi32766.0/mtd/mtd0/mtdblock0
4e0e09
 	         */
4e0e09
 	        set_disk_name(dev, "%s", ultimate);
4e0e09
 	        debug("disk:%s", ultimate);
4e0e09
+		rc = 0;
4e0e09
 	}
4e0e09
 
4e0e09
-	return 0;
4e0e09
+	if (rc < 0)
4e0e09
+		efi_error("Could not parse disk name:\"%s\"", dev->link);
4e0e09
+	return rc;
4e0e09
 }
4e0e09
 
4e0e09
 static struct dev_probe *dev_probes[] = {
4e0e09
-- 
4e0e09
2.26.2
4e0e09