#define STORAGE_EXT_DEVICE_CHANGED "DeviceChanged"
#define STORAGE_EXT_DEVICE_ADDED "DeviceAdded"
#define STORAGE_EXT_DEVICE_REMOVED "DeviceRemoved"
+#define STORAGE_EXT_DEVICE_BLOCKED "DeviceBlocked"
#define DBUS_REPLY_TIMEOUT (-1)
&dev->flags,
&dev->storage_id);
+ /* Callback is called when unmount is started(DeviceBlocked signal) */
+ if (state == STORAGE_EXT_CHANGED && dev->state == STORAGE_EXT_UNMOUNTED) {
+ storage_ext_release_device(&dev);
+ return;
+ }
+
DD_LIST_FOREACH(changed_list, elem, callback) {
if (!callback->func)
continue;
else if (!strncmp(signal, STORAGE_EXT_DEVICE_REMOVED, signal_len))
state = STORAGE_EXT_REMOVED;
+ else if (!strncmp(signal, STORAGE_EXT_DEVICE_BLOCKED, signal_len))
+ state = STORAGE_EXT_BLOCKED;
+
else
return;