File libparted-dont-warn-if-no-HDIO_GET_IDENTITY.patch of Package parted.15765

From: Sebastian Parschauer <sparschauer@suse.de>
Date: Tue, 4 Oct 2016 10:30:37 +0200
Subject: libparted: Don't warn if no HDIO_GET_IDENTITY ioctl
References: bsc#964012, bsc#1001967
Patch-mainline: v3.3
Git-commit: 3df498541058e933881190677b4cf10193f6aa68

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.

Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
---
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -937,6 +937,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;
@@ -944,7 +945,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,
openSUSE Build Service is sponsored by