Hi Daniel, Vladimir,
Could one of you please provide some feedback for Renaud's patch..?

thanks!
marta

On Fri, Jun 21, 2024 at 10:21 AM Renaud Métrich <rmetr...@redhat.com> wrote:

> DDF and IMSM are very similar in handling, especially these should not
> be considered as RAID abstraction.
> This fixes the requirement of having a device map when probing DDF
> containers.
>
> Fixes https://issues.redhat.com/browse/RHEL-44336
>
> Signed-off-by: Renaud Métrich <rmetr...@redhat.com>
> ---
>  grub-core/osdep/linux/getroot.c | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/grub-core/osdep/linux/getroot.c
> b/grub-core/osdep/linux/getroot.c
> index 7dd775d2a..0c6c12945 100644
> --- a/grub-core/osdep/linux/getroot.c
> +++ b/grub-core/osdep/linux/getroot.c
> @@ -119,7 +119,7 @@ struct btrfs_ioctl_search_args {
>                                 struct btrfs_ioctl_fs_info_args)
>
>  static int
> -grub_util_is_imsm (const char *os_dev);
> +grub_util_is_imsm_or_ddf (const char *os_dev);
>
>
>  #define ESCAPED_PATH_MAX (4 * PATH_MAX)
> @@ -635,10 +635,10 @@ out:
>  }
>
>  static int
> -grub_util_is_imsm (const char *os_dev)
> +grub_util_is_imsm_or_ddf (const char *os_dev)
>  {
>    int retry;
> -  int is_imsm = 0;
> +  int is_imsm_or_ddf = 0;
>    int container_seen = 0;
>    const char *dev = os_dev;
>
> @@ -699,10 +699,17 @@ grub_util_is_imsm (const char *os_dev)
>           if (strncmp (buf, "MD_METADATA=imsm",
>                        sizeof ("MD_METADATA=imsm") - 1) == 0)
>             {
> -             is_imsm = 1;
> +             is_imsm_or_ddf = 1;
>               grub_util_info ("%s is imsm", dev);
>               break;
>             }
> +         if (strncmp (buf, "MD_METADATA=ddf",
> +                      sizeof ("MD_METADATA=ddf") - 1) == 0)
> +           {
> +             is_imsm_or_ddf = 1;
> +             grub_util_info ("%s is ddf", dev);
> +             break;
> +           }
>         }
>
>        free (buf);
> @@ -713,7 +720,7 @@ grub_util_is_imsm (const char *os_dev)
>
>    if (dev != os_dev)
>      free ((void *) dev);
> -  return is_imsm;
> +  return is_imsm_or_ddf;
>  }
>
>  char *
> @@ -1078,7 +1085,7 @@ grub_util_get_dev_abstraction_os (const char *os_dev)
>
>    /* Check for RAID.  */
>    if (!strncmp (os_dev, "/dev/md", 7) && ! grub_util_device_is_mapped
> (os_dev)
> -      && !grub_util_is_imsm (os_dev))
> +      && !grub_util_is_imsm_or_ddf (os_dev))
>      return GRUB_DEV_ABSTRACTION_RAID;
>    return GRUB_DEV_ABSTRACTION_NONE;
>  }
> --
> 2.45.2
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to