From 51cb14646379d8041a4e12d7b674347a3c99401e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 10 Jul 2012 10:43:28 +0000 Subject: [PATCH] efm with eeze mounting should handle "unknown" devices more gracefully, also add some handling for udev CHANGE events SVN revision: 73521 --- src/bin/e_fm/e_fm_main_eeze.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c index cd062c832..a5e9f2955 100644 --- a/src/bin/e_fm/e_fm_main_eeze.c +++ b/src/bin/e_fm/e_fm_main_eeze.c @@ -320,6 +320,7 @@ _e_fm_main_eeze_volume_add(const char *syspath, { E_Volume *v; const char *str; + Eeze_Disk_Type type; if (!syspath) return NULL; if (e_volume_find(syspath)) return NULL; @@ -333,9 +334,10 @@ _e_fm_main_eeze_volume_add(const char *syspath, } INF("VOL+ %s", syspath); eeze_disk_scan(v->disk); - if (eeze_disk_type_get(v->disk) == EEZE_DISK_TYPE_INTERNAL) + type = eeze_disk_type_get(v->disk); + if ((type == EEZE_DISK_TYPE_INTERNAL) || (type == EEZE_DISK_TYPE_UNKNOWN)) { - INF("VOL is internal, ignoring"); + INF("VOL is %s, ignoring", (type == EEZE_DISK_TYPE_INTERNAL) ? "internal" : "unknown"); eeze_disk_free(v->disk); free(v); return NULL; @@ -759,8 +761,8 @@ _e_fm_main_eeze_storage_rescan(const char *syspath) E_Storage *s; s = _e_fm_main_eeze_storage_find_fast(syspath); - if (!s) return; - DBG("%s changed, nothing to see here", s->udi); + if (s) _e_fm_main_eeze_storage_del(syspath); + _e_fm_main_eeze_storage_add(syspath); } static void @@ -769,8 +771,8 @@ _e_fm_main_eeze_volume_rescan(const char *syspath) E_Volume *v; v = _e_fm_main_eeze_volume_find_fast(syspath); - if (!v) return; - DBG("%s changed, nothing to see here", v->udi); + if (v) _e_fm_main_eeze_volume_del(syspath); + _e_fm_main_eeze_volume_add(syspath, EINA_FALSE); } E_Storage *