summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/protocol/client/src/client-handshake.c1
-rw-r--r--xlators/protocol/client/src/client.c5
-rw-r--r--xlators/protocol/client/src/client.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c
index fd9ee08208e..3dec4900605 100644
--- a/xlators/protocol/client/src/client-handshake.c
+++ b/xlators/protocol/client/src/client-handshake.c
@@ -782,6 +782,7 @@ out:
STACK_DESTROY (frame->root);
if (conf) {
+ conf->skip_notify = 1;
rpc_transport_disconnect (conf->rpc->conn.trans);
rpc_clnt_reconnect (conf->rpc->conn.trans);
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index e2513f89145..53c356cdec6 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -1585,7 +1585,10 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
gf_log (this->name, GF_LOG_TRACE, "got RPC_CLNT_DISCONNECT");
- default_notify (this, GF_EVENT_CHILD_DOWN, NULL);
+ if (!conf->skip_notify)
+ default_notify (this, GF_EVENT_CHILD_DOWN, NULL);
+ conf->skip_notify = 0;
+
break;
default:
diff --git a/xlators/protocol/client/src/client.h b/xlators/protocol/client/src/client.h
index 496e709ba31..39dfc36ea89 100644
--- a/xlators/protocol/client/src/client.h
+++ b/xlators/protocol/client/src/client.h
@@ -58,6 +58,7 @@ typedef struct clnt_conf {
uint64_t reopen_fd_count; /* Count of fds reopened after a
connection is established */
gf_lock_t rec_lock;
+ int skip_notify;
} clnt_conf_t;
typedef struct _client_fd_ctx {