]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
grub-install: support for partitioned partx loop devices.
authorMike Gilbert <floppym@gentoo.org>
Sun, 26 Jan 2014 01:56:04 +0000 (02:56 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sun, 26 Jan 2014 01:56:04 +0000 (02:56 +0100)
* grub-core/osdep/linux/getroot.c (grub_util_part_to_disk): Detect
/dev/loopX as being the parent of /dev/loopXpY.

ChangeLog
grub-core/osdep/linux/getroot.c

index 67b4d5c2add875a0b617f50325de36a54acf8a0d..bbec1e70bbdc7d825b5cd8e7ab2354c1b1caaf2a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-01-26  Mike Gilbert <floppym@gentoo.org>
+
+       grub-install: support for partitioned partx loop devices.
+
+       * grub-core/osdep/linux/getroot.c (grub_util_part_to_disk): Detect
+       /dev/loopX as being the parent of /dev/loopXpY.
+
 2014-01-26  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/term/serial.c (grub_serial_register): Fix invalid free.
index 772de0a9bc4492a321c2dfccf7740148a53d2a39..19581d32997e1edfbc3b6dbd349b495b8e861c18 100644 (file)
@@ -883,6 +883,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st,
          *pp = '\0';
          return path;
        }
+
+      /* If this is a loop device */
+      if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9')
+       {
+         char *pp = p + 4;
+         while (*pp >= '0' && *pp <= '9')
+           pp++;
+         if (*pp == 'p')
+           *is_part = 1;
+         /* /dev/loop[0-9]+p[0-9]* */
+         *pp = '\0';
+         return path;
+       }
     }
 
   return path;