efm with eeze mounting should handle "unknown" devices more gracefully, also add some handling for udev CHANGE events

SVN revision: 73521
This commit is contained in:
Mike Blumenkrantz 2012-07-10 10:43:28 +00:00
parent e992d60de5
commit 51cb146463
1 changed files with 8 additions and 6 deletions

View File

@ -320,6 +320,7 @@ _e_fm_main_eeze_volume_add(const char *syspath,
{ {
E_Volume *v; E_Volume *v;
const char *str; const char *str;
Eeze_Disk_Type type;
if (!syspath) return NULL; if (!syspath) return NULL;
if (e_volume_find(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); INF("VOL+ %s", syspath);
eeze_disk_scan(v->disk); 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); eeze_disk_free(v->disk);
free(v); free(v);
return NULL; return NULL;
@ -759,8 +761,8 @@ _e_fm_main_eeze_storage_rescan(const char *syspath)
E_Storage *s; E_Storage *s;
s = _e_fm_main_eeze_storage_find_fast(syspath); s = _e_fm_main_eeze_storage_find_fast(syspath);
if (!s) return; if (s) _e_fm_main_eeze_storage_del(syspath);
DBG("%s changed, nothing to see here", s->udi); _e_fm_main_eeze_storage_add(syspath);
} }
static void static void
@ -769,8 +771,8 @@ _e_fm_main_eeze_volume_rescan(const char *syspath)
E_Volume *v; E_Volume *v;
v = _e_fm_main_eeze_volume_find_fast(syspath); v = _e_fm_main_eeze_volume_find_fast(syspath);
if (!v) return; if (v) _e_fm_main_eeze_volume_del(syspath);
DBG("%s changed, nothing to see here", v->udi); _e_fm_main_eeze_volume_add(syspath, EINA_FALSE);
} }
E_Storage * E_Storage *