diff options
-rw-r--r-- | xlators/protocol/client/src/client.c | 7 | ||||
-rw-r--r-- | xlators/protocol/client/src/client.h | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index b267321afbe..078236647ad 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -2225,7 +2225,7 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, } case RPC_CLNT_CONNECT: { - conf->connected = 1; + conf->can_log_disconnect = 1; // connect happened, send 'get_supported_versions' mop gf_msg_debug (this->name, 0, "got RPC_CLNT_CONNECT"); @@ -2243,7 +2243,7 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, client_mark_fd_bad (this); if (!conf->skip_notify) { - if (conf->connected) { + if (conf->can_log_disconnect) { if (!conf->disconnect_err_logged) { gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_CLIENT_DISCONNECTED, @@ -2278,12 +2278,13 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event, "CHILD_DOWN notify failed"); } else { - if (conf->connected) + if (conf->can_log_disconnect) gf_msg_debug (this->name, 0, "disconnected (skipped notify)"); } conf->connected = 0; + conf->can_log_disconnect = 0; conf->skip_notify = 0; if (conf->quick_reconnect) { diff --git a/xlators/protocol/client/src/client.h b/xlators/protocol/client/src/client.h index c3c8aaec0dc..5ee480367cb 100644 --- a/xlators/protocol/client/src/client.h +++ b/xlators/protocol/client/src/client.h @@ -235,6 +235,11 @@ typedef struct clnt_conf { gf_boolean_t child_up; /* Set to true, when child is up, and * false, when child is down */ + + gf_boolean_t can_log_disconnect; /* socket level connection is + * up, disconnects can be + * logged + */ } clnt_conf_t; typedef struct _client_fd_ctx { |