Make grub_util_devmapper_part_to_disk and grub_util_find_partition_start
follow the same algorithm to avoid method mismatch. Don't assume DMRAID- UUID to mean full disk but instead check that mapping is linear.
This commit is contained in:
parent
da98622662
commit
e88f0420b9
6 changed files with 35 additions and 127 deletions
|
@ -77,10 +77,15 @@
|
|||
grub_disk_addr_t
|
||||
grub_util_find_partition_start (const char *dev)
|
||||
{
|
||||
#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL
|
||||
struct stat st;
|
||||
grub_disk_addr_t partition_start;
|
||||
if (grub_util_device_is_mapped (dev)
|
||||
&& grub_util_get_dm_node_linear_info (dev, 0, 0, &partition_start))
|
||||
|
||||
if (stat (dev, &st) >= 0
|
||||
&& grub_util_device_is_mapped_stat (&st)
|
||||
&& grub_util_get_dm_node_linear_info (st.st_rdev, 0, 0, &partition_start))
|
||||
return partition_start;
|
||||
#endif
|
||||
|
||||
return grub_util_find_partition_start_os (dev);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue