diff options
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-pmap.c | 20 | ||||
-rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 1 |
2 files changed, 14 insertions, 7 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-pmap.c b/xlators/mgmt/glusterd/src/glusterd-pmap.c index a54a87b1d33..e4dacb80c4a 100644 --- a/xlators/mgmt/glusterd/src/glusterd-pmap.c +++ b/xlators/mgmt/glusterd/src/glusterd-pmap.c @@ -438,9 +438,10 @@ gluster_pmap_signin (rpcsvc_request_t *req) int __gluster_pmap_signout (rpcsvc_request_t *req) { - pmap_signout_req args = {0,}; - pmap_signout_rsp rsp = {0,}; - int ret = -1; + pmap_signout_req args = {0,}; + pmap_signout_rsp rsp = {0,}; + int ret = -1; + char brick_path[PATH_MAX] = {0,}; glusterd_brickinfo_t *brickinfo = NULL; ret = xdr_to_generic (req->msg[0], &args, @@ -456,14 +457,21 @@ __gluster_pmap_signout (rpcsvc_request_t *req) ret = glusterd_get_brickinfo (THIS, args.brick, args.port, _gf_true, &brickinfo); + if (args.rdma_port) { + snprintf(brick_path, PATH_MAX, "%s.rdma", args.brick); + rsp.op_ret = pmap_registry_remove (THIS, args.rdma_port, + brick_path, GF_PMAP_PORT_BRICKSERVER, + req->trans); + } + + if (!ret) + glusterd_brick_update_signin (brickinfo, _gf_false); + fail: glusterd_submit_reply (req, &rsp, NULL, 0, NULL, (xdrproc_t)xdr_pmap_signout_rsp); free (args.brick);//malloced by xdr - if (!ret) - glusterd_brick_update_signin (brickinfo, _gf_false); - return 0; } diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index cf91c3b723c..8bd3d6a3d09 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -1502,7 +1502,6 @@ client_query_portmap_cbk (struct rpc_req *req, struct iovec *iov, int count, voi conf->portmap_err_logged = 0; conf->disconnect_err_logged = 0; - config.remote_port = rsp.port; rpc_clnt_reconfig (conf->rpc, &config); |