summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/protocol/server/src')
-rw-r--r--xlators/protocol/server/src/server-helpers.c6
-rw-r--r--xlators/protocol/server/src/server.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c
index ff23959ec..2df463a9c 100644
--- a/xlators/protocol/server/src/server-helpers.c
+++ b/xlators/protocol/server/src/server-helpers.c
@@ -956,9 +956,11 @@ gf_barrier_transmit (server_conf_t *conf, gf_barrier_payload_t *payload)
if (frame) {
state = CALL_STATE (frame);
frame->local = NULL;
- client = state->client;
+ if (state)
+ client = state->client;
}
-
+ /* currently lk fops are not barrier'ed. This is reflecting code in
+ * server_submit_reply */
if (client)
lk_heal = ((server_conf_t *) client->this->private)->lk_heal;
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index bea3e21fa..589bd7b36 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -200,7 +200,7 @@ server_submit_reply (call_frame_t *frame, rpcsvc_request_t *req, void *arg,
}
UNLOCK (&barrier->lock);
if (barriered == _gf_true)
- goto ret;
+ goto out;
}
/* Then, submit the message for transmission. */
ret = rpcsvc_submit_generic (req, &rsp, 1, payload, payloadcount,
@@ -243,6 +243,7 @@ ret:
if (new_iobref) {
iobref_unref (iobref);
}
+out:
return ret;
}
@@ -970,6 +971,7 @@ init (xlator_t *this)
}
LOCK_INIT (&barrier->lock);
+ INIT_LIST_HEAD (&barrier->queue);
barrier->on = _gf_false;
GF_OPTION_INIT ("barrier-queue-length", barrier->max_size,