[parted-devel] [PATCH] libparted: Don't warn if no HDIO_GET_IDENTITY ioctl
Sebastian Parschauer
sparschauer at suse.de
Wed Oct 5 08:04:11 UTC 2016
On 04.10.2016 23:01, Brian C. Lane wrote:
> 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!
Thanks for positive feedback! I've tested this of cause and I hope that
this gets merged soon so that I can apply it to many SUSE distro
versions. I took over SUSE parted maintenance from Petr Uzel.
Cheers,
Sebastian
More information about the parted-devel
mailing list