diff options
author | Amar Tumballi <amar@gluster.com> | 2009-03-02 15:47:37 -0800 |
---|---|---|
committer | Anand V. Avati <avati@amp.gluster.com> | 2009-03-03 11:58:03 +0530 |
commit | 5ed5ea9bffe018512edc6babff18fd4d44bcdd70 (patch) | |
tree | 6520121a74b98cb51076453a6945ee2a692e6598 /xlators/protocol/client/src/client-protocol.c | |
parent | 130ae0dee7f1ed1292c32df52276833a9fa187b2 (diff) |
create fuse thread after setvolume cbk happens, not only in case of success
This patch fixes the 'hang' effect when client protocol fails to authenticate
to servers (it may be problem with volume file, or server process would have
not started yet).
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'xlators/protocol/client/src/client-protocol.c')
-rw-r--r-- | xlators/protocol/client/src/client-protocol.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/xlators/protocol/client/src/client-protocol.c b/xlators/protocol/client/src/client-protocol.c index 11e669833..5212d67c6 100644 --- a/xlators/protocol/client/src/client-protocol.c +++ b/xlators/protocol/client/src/client-protocol.c @@ -5956,6 +5956,20 @@ client_setvolume_cbk (call_frame_t *frame, } out: + if (-1 == op_ret) { + /* Let the connection/re-connection happen in + * background, for now, don't hang here, + * tell the parents that i am all ok.. + */ + parent = trans->xl->parents; + while (parent) { + parent->xlator->notify (parent->xlator, + GF_EVENT_CHILD_CONNECTING, + trans->xl); + parent = parent->next; + } + } + STACK_DESTROY (frame->root); if (reply) @@ -6608,7 +6622,6 @@ notify (xlator_t *this, case GF_EVENT_PARENT_UP: { - xlator_list_t *parent = NULL; client_conf_t *conf = NULL; int i = 0; transport_t *trans = NULL; @@ -6630,18 +6643,6 @@ notify (xlator_t *this, client_protocol_reconnect (trans); } - - /* Let the connection/re-connection happen in - * background, for now, don't hang here, - * tell the parents that i am all ok.. - */ - parent = trans->xl->parents; - while (parent) { - parent->xlator->notify (parent->xlator, - GF_EVENT_CHILD_CONNECTING, - trans->xl); - parent = parent->next; - } } break; |