From e628e1d2b027758a4de89d526e9f7a48f04e3f2f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 10 Jul 2012 10:42:33 +0000 Subject: [PATCH] eeze watches now detect loopback devices slightly more correctly SVN revision: 73520 --- legacy/eeze/ChangeLog | 5 +++++ legacy/eeze/src/lib/eeze_udev_watch.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/legacy/eeze/ChangeLog b/legacy/eeze/ChangeLog index 311cfa989a..6166e07746 100644 --- a/legacy/eeze/ChangeLog +++ b/legacy/eeze/ChangeLog @@ -100,3 +100,8 @@ 2012-06-29 Christophe Dumez (christophe.dumez@intel.com) * Added joystick detection + +2012-07-10 Mike Blumenkrantz + + * Add a check in event monitoring for disks which ensures that + device changes for loopback devices are picked up diff --git a/legacy/eeze/src/lib/eeze_udev_watch.c b/legacy/eeze/src/lib/eeze_udev_watch.c index b89e2d6dbe..0083b818fc 100644 --- a/legacy/eeze/src/lib/eeze_udev_watch.c +++ b/legacy/eeze/src/lib/eeze_udev_watch.c @@ -192,7 +192,15 @@ _get_syspath_from_watch(void *data, #endif if (!(test = (udev_device_get_property_value(device, "ID_FS_USAGE"))) || (strcmp("filesystem", test))) - goto error; + { + if (event & EEZE_UDEV_EVENT_CHANGE) + { + test = udev_device_get_sysname(device); + if (!test) goto error; + if (!strncmp(test, "loop", 4)) break; + } + goto error; + } { int devcheck; @@ -210,7 +218,7 @@ _get_syspath_from_watch(void *data, test = udev_device_get_property_value(device, "ID_BUS"); if ((!test) || strcmp(test, "ata")) goto error; test = udev_device_get_property_value(device, "ID_TYPE"); - if ((!test) || strcmp(test, "disk")) goto error; + if (!(event & EEZE_UDEV_EVENT_CHANGE) && ((!test) || strcmp(test, "disk"))) goto error; break; case EEZE_UDEV_TYPE_DRIVE_REMOVABLE: