From fecb0fc748806d4e6d61bcbef976acf473e55c82 Mon Sep 17 00:00:00 2001
From: Anoop C S <anoopcs@redhat.com>
Date: Fri, 2 Mar 2018 10:32:17 +0530
Subject: [PATCH] protocol/server: Insert dummy clnt-lk-version to avoid
 upgrade failure

This is required as we check for 'clnt-lk-version' in SETVOLUME callback
with older clients in place against newer servers. Change is similar to
what we have done via https://review.gluster.org/#/c/19560/.

Change-Id: If333c20cf9503f40687ec926c44c7e50222c05b5
BUG: 1544699
Signed-off-by: Anoop C S <anoopcs@redhat.com>
---
 xlators/protocol/server/src/server-handshake.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c
index f6057da3b..de90a6b8e 100644
--- a/xlators/protocol/server/src/server-handshake.c
+++ b/xlators/protocol/server/src/server-handshake.c
@@ -838,6 +838,16 @@ server_setvolume (rpcsvc_request_t *req)
         if (ret)
                 gf_msg_debug (this->name, 0, "failed to set 'process-uuid'");
 
+        /* Insert a dummy key value pair to avoid failure at client side for
+         * clnt-lk-version with older clients.
+         */
+        ret = dict_set_uint32 (reply, "clnt-lk-version", 0);
+        if (ret) {
+               gf_msg (this->name, GF_LOG_WARNING, 0,
+                       PS_MSG_CLIENT_LK_VERSION_ERROR, "failed to set "
+                       "'clnt-lk-version'");
+        }
+
         ret = dict_set_uint64 (reply, "transport-ptr",
                                ((uint64_t) (long) req->trans));
         if (ret)