On 04/23/2014 04:42 AM, Giuseppe Scrivano wrote:
Some CDROM devices are reported by udev to have an
ID_TYPE="generic"
thus it is necessary to check if ID_CDROM is present.
As a side effect, treating ID_TYPE="generic" as a missing ID_TYPE will
enable checks for ID_DRIVE_FLASH_SD and ID_DRIVE_FLOPPY and the
udevKludgeStorageType heuristic.
Signed-off-by: Giuseppe Scrivano <gscrivan(a)redhat.com>
---
if (udevGetStringProperty(device,
"ID_TYPE",
- &data->storage.drive_type) != PROPERTY_FOUND) {
+ &data->storage.drive_type) != PROPERTY_FOUND
+ || STREQ(def->caps->data.storage.drive_type, "generic")) {
Style: HACKING documents that we tend to leave || hanging on the first
line, not wrapped to the next line (closer to kernel style than GNU style).
int tmp_int = 0;
/* All floppy drives have the ID_DRIVE_FLOPPY prop. This is
@@ -1104,6 +1105,12 @@ static int udevProcessStorage(struct udev_device *device,
if (VIR_STRDUP(data->storage.drive_type, "floppy") < 0)
goto out;
+ } else if ((udevGetIntProperty(device, "ID_CDROM",
+ &tmp_int, 0) == PROPERTY_FOUND) &&
+ (tmp_int == 1)) {
Style: over-parenthesized, and indentation is odd.
+
+ if (VIR_STRDUP(data->storage.drive_type, "cd") < 0)
+ goto out;
} else if ((udevGetIntProperty(device, "ID_DRIVE_FLASH_SD",
&tmp_int, 0) == PROPERTY_FOUND) &&
(tmp_int == 1)) {
But you were just copying existing oddness.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org