diff options
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 1 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.c | 5 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.h | 1 | 
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 {  | 
