forked from pool/parted
libparted: Don't warn if no HDIO_GET_IDENTITY ioctl OBS-URL: https://build.opensuse.org/request/show/491638 OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=124
39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
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,
|