[parted-devel] [PATCH] libparted: Don't warn if no HDIO_GET_IDENTITY ioctl

Brian C. Lane bcl at redhat.com
Tue Oct 4 21:01:58 UTC 2016


On Tue, Oct 04, 2016 at 11:37:30AM +0200, Sebastian Parschauer wrote:
> Fully virtualized Xen VMs (HVM) use Linux IDE devices which don't
> support the HDIO_GET_IDENTITY ioctl. EINVAL is returned, a warning
> is printed and the device model is set to "Generic IDE" in that
> case. The problem is seeing the warning all the time. So drop it
> for this case.
> ---
>  libparted/arch/linux.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
> index a22b1d7..d87fe9c 100644
> --- a/libparted/arch/linux.c
> +++ b/libparted/arch/linux.c
> @@ -931,6 +931,7 @@ init_ide (PedDevice* dev)
>          PedExceptionOption      ex_status;
>          char                    hdi_buf[41];
>          int                     sector_multiplier = 0;
> +        int                     r;
>  
>          if (!_device_stat (dev, &dev_stat))
>                  goto error;
> @@ -938,7 +939,11 @@ init_ide (PedDevice* dev)
>          if (!_device_open_ro (dev))
>                  goto error;
>  
> -        if (ioctl (arch_specific->fd, HDIO_GET_IDENTITY, &hdi)) {
> +        r = ioctl (arch_specific->fd, HDIO_GET_IDENTITY, &hdi);
> +        if (r && errno == EINVAL) {
> +                /* silently ignore unsupported ioctl */
> +                dev->model = strdup(_("Generic IDE"));
> +        } else if (r) {
>                  ex_status = ped_exception_throw (
>                                  PED_EXCEPTION_WARNING,
>                                  PED_EXCEPTION_IGNORE_CANCEL,
> -- 
> 2.6.6
> 
> 

Looks ok to me, thanks!

-- 
Brian C. Lane (PST8PDT)



More information about the parted-devel mailing list