You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Peter Jones <pjones@redhat.com> |
|
Date: Tue, 18 Feb 2014 11:34:00 -0500 |
|
Subject: [PATCH] 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 3958105d819..e70061099b3 100644 |
|
--- a/util/getroot.c |
|
+++ b/util/getroot.c |
|
@@ -152,6 +152,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) |
|
{ |
|
@@ -164,6 +165,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); |
|
|
|
|