summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/client/src/client.c
diff options
context:
space:
mode:
authorAnoop C S <anoopcs@redhat.com>2015-10-15 15:04:34 +0530
committerRaghavendra G <rgowdapp@redhat.com>2018-01-29 17:36:31 +0000
commit3e78ea991b213422fc423ff94994e1eb295569c7 (patch)
tree4eb9bfc9e9a60a816a59d1e0215ee560e30f118a /xlators/protocol/client/src/client.c
parent596143a286079338c30c8abc4b862f8d6ddddb3a (diff)
protocol: Remove lock recovery logic from client and server
Change-Id: I27f5e1e34fe3eac96c7dd88e90753fb5d3d14550 BUG: 1272030 Signed-off-by: Anoop C S <anoopcs@redhat.com>
Diffstat (limited to 'xlators/protocol/client/src/client.c')
-rw-r--r--xlators/protocol/client/src/client.c177
1 files changed, 1 insertions, 176 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index 955db86e1c2..74bf2104edc 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -126,96 +126,6 @@ client_type_to_gf_type (short l_type)
return gf_type;
}
-uint32_t
-client_get_lk_ver (clnt_conf_t *conf)
-{
- uint32_t lk_ver = 0;
-
- GF_VALIDATE_OR_GOTO ("client", conf, out);
-
- pthread_mutex_lock (&conf->lock);
- {
- lk_ver = conf->lk_version;
- }
- pthread_mutex_unlock (&conf->lock);
-out:
- return lk_ver;
-}
-
-void
-client_grace_timeout (void *data)
-{
- int ver = 0;
- xlator_t *this = NULL;
- struct clnt_conf *conf = NULL;
-
- GF_VALIDATE_OR_GOTO ("client", data, out);
-
- this = THIS;
-
- conf = (struct clnt_conf *) this->private;
-
- pthread_mutex_lock (&conf->lock);
- {
- ver = ++conf->lk_version;
- /* ver == 0 is a special value used by server
- to notify client that this is a fresh connect.*/
- if (ver == 0)
- ver = ++conf->lk_version;
-
- gf_timer_call_cancel (this->ctx, conf->grace_timer);
- conf->grace_timer = NULL;
- }
- pthread_mutex_unlock (&conf->lock);
-
- gf_msg (this->name, GF_LOG_WARNING, 0, PC_MSG_TIMER_EXPIRED,
- "client grace timer expired, updating "
- "the lk-version to %d", ver);
-
- client_mark_fd_bad (this);
-out:
- return;
-}
-
-int32_t
-client_register_grace_timer (xlator_t *this, clnt_conf_t *conf)
-{
- int32_t ret = -1;
- struct timespec grace_ts = {0, };
-
- GF_VALIDATE_OR_GOTO ("client", this, out);
- GF_VALIDATE_OR_GOTO (this->name, conf, out);
-
- grace_ts.tv_sec = conf->grace_timeout;
- grace_ts.tv_nsec = 0;
-
- pthread_mutex_lock (&conf->lock);
- {
- if (conf->grace_timer || !conf->grace_timer_needed) {
- gf_msg_trace (this->name, 0,
- "Client grace timer is already set "
- "or a grace-timer has already time "
- "out, not registering a new timer");
- } else {
- gf_msg (this->name, GF_LOG_INFO, 0, PC_MSG_TIMER_REG,
- "Registering a grace timer");
-
- conf->grace_timer_needed = _gf_false;
-
- conf->grace_timer =
- gf_timer_call_after (this->ctx,
- grace_ts,
- client_grace_timeout,
- conf->rpc);
- }
- }
- pthread_mutex_unlock (&conf->lock);
-
- ret = 0;
-out:
- return ret;
-}
-
int
client_submit_request (xlator_t *this, void *req, call_frame_t *frame,
rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbkfn,
@@ -2298,34 +2208,12 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
gf_msg (this->name, GF_LOG_WARNING, 0,
PC_MSG_HANDSHAKE_RETURN, "handshake "
"msg returned %d", ret);
-
- /* Cancel grace timer if set */
- pthread_mutex_lock (&conf->lock);
- {
- conf->grace_timer_needed = _gf_true;
-
- if (conf->grace_timer) {
- gf_msg (this->name, GF_LOG_WARNING, 0,
- PC_MSG_GRACE_TIMER_CANCELLED,
- "Cancelling the grace timer");
-
- gf_timer_call_cancel (this->ctx,
- conf->grace_timer);
-
- conf->grace_timer = NULL;
- }
- }
- pthread_mutex_unlock (&conf->lock);
-
break;
}
case RPC_CLNT_DISCONNECT:
gf_msg_debug (this->name, 0, "got RPC_CLNT_DISCONNECT");
- if (!conf->lk_heal)
- client_mark_fd_bad (this);
- else
- client_register_grace_timer (this, conf);
+ client_mark_fd_bad (this);
if (!conf->skip_notify) {
if (conf->connected) {
@@ -2378,9 +2266,7 @@ client_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
} else {
rpc->conn.config.remote_port = 0;
}
-
break;
-
case RPC_CLNT_DESTROY:
ret = client_fini_complete (this);
break;
@@ -2614,33 +2500,6 @@ out:
return ret;
}
-
-int
-client_init_grace_timer (xlator_t *this, dict_t *options,
- clnt_conf_t *conf)
-{
- int32_t ret = -1;
-
- GF_VALIDATE_OR_GOTO ("client", this, out);
- GF_VALIDATE_OR_GOTO (this->name, options, out);
- GF_VALIDATE_OR_GOTO (this->name, conf, out);
-
- GF_OPTION_RECONF ("lk-heal", conf->lk_heal, options, bool, out);
-
- gf_msg_debug (this->name, 0, "lk-heal = %s",
- (conf->lk_heal) ? "on" : "off");
-
- GF_OPTION_RECONF ("grace-timeout", conf->grace_timeout,
- options, uint32, out);
-
- gf_msg_debug (this->name, 0, "Client grace timeout value = %d",
- conf->grace_timeout);
-
- ret = 0;
-out:
- return ret;
-}
-
int
client_check_event_threads (xlator_t *this, clnt_conf_t *conf, int32_t old,
int32_t new)
@@ -2722,10 +2581,6 @@ reconfigure (xlator_t *this, dict_t *options)
GF_OPTION_RECONF ("send-gids", conf->send_gids, options, bool, out);
- ret = client_init_grace_timer (this, options, conf);
- if (ret)
- goto out;
-
ret = 0;
out:
return ret;
@@ -2761,11 +2616,6 @@ init (xlator_t *this)
conf->child_up = _gf_false;
- /* Initialize parameters for lock self healing*/
- conf->lk_version = 1;
- conf->grace_timer = NULL;
- conf->grace_timer_needed = _gf_true;
-
/* Set event threads to the configured default */
GF_OPTION_INIT("event-threads", conf->event_threads, int32, out);
ret = client_check_event_threads (this, conf, STARTING_EVENT_THREADS,
@@ -2773,10 +2623,6 @@ init (xlator_t *this)
if (ret)
goto out;
- ret = client_init_grace_timer (this, this->options, conf);
- if (ret)
- goto out;
-
LOCK_INIT (&conf->rec_lock);
conf->last_sent_event = -1; /* To start with we don't have any events */
@@ -3078,27 +2924,6 @@ struct volume_options options[] = {
{ .key = {"client-bind-insecure"},
.type = GF_OPTION_TYPE_BOOL
},
- { .key = {"lk-heal"},
- .type = GF_OPTION_TYPE_BOOL,
- .default_value = "off",
- .description = "When the connection to client is lost, server "
- "cleans up all the locks held by the client. After "
- "the connection is restored, the client reacquires "
- "(heals) the fcntl locks released by the server.",
- .op_version = {1},
- .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC
- },
- { .key = {"grace-timeout"},
- .type = GF_OPTION_TYPE_INT,
- .min = 10,
- .max = 1800,
- .default_value = "10",
- .description = "Specifies the duration for the lock state to be "
- "maintained on the client after a network "
- "disconnection. Range 10-1800 seconds.",
- .op_version = {1},
- .flags = OPT_FLAG_SETTABLE | OPT_FLAG_DOC
- },
{ .key = {"tcp-window-size"},
.type = GF_OPTION_TYPE_SIZET,
.min = GF_MIN_SOCKET_WINDOW_SIZE,