| --- grub-core/kern/emu/getroot.c 2011-05-21 05:03:55 +0000 |
| +++ grub-core/kern/emu/getroot.c 2011-06-23 17:50:41 +0000 |
| @@ -616,13 +616,15 @@ |
| |
| if (os_dev) |
| { |
| - if (strncmp (os_dev, "/dev/dm-", sizeof ("/dev/dm-") - 1) != 0) |
| + int dm = (strncmp (os_dev, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0); |
| + int root = (strcmp (os_dev, "/dev/root") == 0); |
| + if (!dm && !root) |
| return os_dev; |
| if (stat (os_dev, &st) < 0) |
| grub_util_error ("cannot stat `%s'", os_dev); |
| free (os_dev); |
| dev = st.st_rdev; |
| - return grub_find_device ("/dev/mapper", dev); |
| + return grub_find_device (dm ? "/dev/mapper" : "/dev", dev); |
| } |
| |
| if (stat (dir, &st) < 0) |
| |