diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/defaults.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libglusterfs/src/defaults.c b/libglusterfs/src/defaults.c index f5431d471..f5317cf86 100644 --- a/libglusterfs/src/defaults.c +++ b/libglusterfs/src/defaults.c @@ -1236,8 +1236,22 @@ default_notify (xlator_t *this, int32_t event, void *data, ...) } } break; - case GF_EVENT_CHILD_DOWN: case GF_EVENT_CHILD_UP: + { + xlator_list_t *parent = this->parents; + /* Handle the case of CHILD_UP specially, send it to fuse */ + if (!parent && this->ctx && this->ctx->master) + xlator_notify (this->ctx->master, event, this->graph, NULL); + + while (parent) { + if (parent->xlator->init_succeeded) + xlator_notify (parent->xlator, event, + this, NULL); + parent = parent->next; + } + } + break; + case GF_EVENT_CHILD_DOWN: default: { xlator_list_t *parent = this->parents; |