X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Ffen%2Ffen-node.c;h=c151e93e39a034d94d2682b35c7a102c53173f39;hb=5b946e0504952a472cea1ef95df0967e8a4a7b47;hp=7238e36bc7a8f211db3c9960506dabc80a8425f7;hpb=e5440f865d79795061cf5e64d8ed7300222c4a79;p=platform%2Fupstream%2Fglib.git diff --git a/gio/fen/fen-node.c b/gio/fen/fen-node.c index 7238e36..c151e93 100644 --- a/gio/fen/fen-node.c +++ b/gio/fen/fen-node.c @@ -167,19 +167,6 @@ node_find(node_t* node, const gchar* filename, gboolean create_on_missing) return child; } -node_t* -node_find_accessible_ancestor(node_t* node) -{ - for (node = NODE_PARENT(node); node != ROOT; node = NODE_PARENT(node)) { - if (NODE_HAS_STATE(node, NODE_STATE_ASSOCIATED) || node_lstat(node) == 0) { - return node; - } - /* else it isn't existing or not accessible */ - } - g_assert(node); - return node; -} - gint node_lstat(node_t *f) { @@ -417,9 +404,24 @@ node_adjust_deleted(node_t* f) FN_W ("%s %s\n", __func__, NODE_NAME(f)); - for (ancestor = node_find_accessible_ancestor(f); - !NODE_HAS_STATE(ancestor, NODE_STATE_ASSOCIATED) && port_add(ancestor) != 0; - ancestor = node_find_accessible_ancestor(ancestor)) { /* Empty */ } + for (ancestor = NODE_PARENT(f); + ancestor != NULL; + ancestor = NODE_PARENT(ancestor)) { + /* Stop if we find a node which been already associated or is existed + * and can be associated. + */ + if (NODE_HAS_STATE(ancestor, NODE_STATE_ASSOCIATED) || + (node_lstat(ancestor) == 0 && port_add(ancestor) == 0)) { + break; + } + } + + /* We assume we shouldn't reach here, because Root is always existed and + * associated. But given bugster#6955199, if PORT FS has problems on root, + * we may reach here. So just return ROOT and the whole GIO fen backend will + * fail. + */ + /* g_assert(ancestor != NULL); */ } @@ -637,4 +639,3 @@ node_event_delete (node_event_t* ev) { g_free (ev); } -