diff options
Diffstat (limited to 'xlators/protocol/client/src')
-rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index e6a5e84f422..0437f1f272d 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -836,8 +836,7 @@ client_setvolume_cbk(struct rpc_req *req, struct iovec *iov, int count, goto out; } } else { - strncpy(ctx->volume_id, volume_id, - min(strlen(volume_id), GF_UUID_BUF_SIZE)); + strncpy(ctx->volume_id, volume_id, GF_UUID_BUF_SIZE); } } @@ -1036,6 +1035,10 @@ client_setvolume(xlator_t *this, struct rpc_clnt *rpc) if (strncmp("snapd", remote_subvol, 5)) { /* If any value is set, the first element will be non-0. It would be '0', but not '\0' :-) */ + if (!this->ctx->volume_id[0]) { + strncpy(this->ctx->volume_id, this->graph->volume_id, + GF_UUID_BUF_SIZE); + } if (this->ctx->volume_id[0]) { ret = dict_set_str(options, "volume-id", this->ctx->volume_id); if (ret < 0) { |