grub2/0113-Fix-convert-function-to-support-NVMe-devices.patch
Javier Martinez Canillas db7cf3a089
More fixes for BLS
Add some fixes for BLS parsing logic and also make 20-grub.install script
to query the relative path of the kernel and initramfs images, so BLS can
also work when /boot is not a mount point or is a btrfs subvolume.

Also pull some build fixes.

Resolves: rhbz#1588184

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-06-07 19:02:21 +02:00

60 lines
1.5 KiB
Diff

From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 18 Feb 2014 11:34:00 -0500
Subject: [PATCH 113/243] Fix convert function to support NVMe devices
This is adapted from the patch at
https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against
the now very old version of convert_system_partition_to_system_disk().
As such, it certainly not the right thing for upstream, but should
function for now.
Resolves: rhbz#1019660
Signed-off-by: Peter Jones <grub2-owner@fedoraproject.org>
---
util/getroot.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/util/getroot.c b/util/getroot.c
index 847406fbab0..fa3460d6cd8 100644
--- a/util/getroot.c
+++ b/util/getroot.c
@@ -153,6 +153,7 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part)
{
#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL
struct stat st;
+ char *path = xmalloc(PATH_MAX);
if (stat (os_dev, &st) < 0)
{
@@ -165,6 +166,24 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part)
*is_part = 0;
+ if (realpath(os_dev, path))
+ {
+ if ((strncmp ("/dev/nvme", path, 9) == 0))
+ {
+ char *p = path + 5;
+ p = strchr(p, 'p');
+ if (p)
+ {
+ *is_part = 1;
+ *p = '\0';
+ }
+ return path;
+ }
+ }
+
+ grub_free (path);
+ *is_part = 0;
+
if (grub_util_device_is_mapped_stat (&st))
return grub_util_devmapper_part_to_disk (&st, is_part, os_dev);
--
2.17.1