diff options
| -rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 2 | ||||
| -rw-r--r-- | rpc/rpc-transport/rdma/src/rdma.c | 7 | ||||
| -rw-r--r-- | rpc/xdr/src/portmap-xdr.x | 1 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-pmap.c | 20 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 1 | 
5 files changed, 18 insertions, 13 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c index e72483509be..9addd77cb26 100644 --- a/glusterfsd/src/glusterfsd-mgmt.c +++ b/glusterfsd/src/glusterfsd-mgmt.c @@ -2238,7 +2238,7 @@ glusterfs_mgmt_pmap_signout (glusterfs_ctx_t *ctx)          req.port  = cmd_args->brick_port;          req.brick = cmd_args->brick_name; - +        req.rdma_port = cmd_args->brick_port2;          ret = mgmt_submit_request (&req, frame, ctx, &clnt_pmap_prog,                                     GF_PMAP_SIGNOUT, mgmt_pmap_signout_cbk,                                     (xdrproc_t)xdr_pmap_signout_req); diff --git a/rpc/rpc-transport/rdma/src/rdma.c b/rpc/rpc-transport/rdma/src/rdma.c index 3ceb197f2a3..89ed4558d72 100644 --- a/rpc/rpc-transport/rdma/src/rdma.c +++ b/rpc/rpc-transport/rdma/src/rdma.c @@ -938,7 +938,7 @@ static void  gf_rdma_cm_handle_disconnect (rpc_transport_t *this)  {          gf_rdma_private_t *priv       = NULL; -        char               need_unref = 0, connected = 0; +        char               need_unref = 0;          priv = this->private;          gf_log (this->name, GF_LOG_DEBUG, @@ -948,7 +948,6 @@ gf_rdma_cm_handle_disconnect (rpc_transport_t *this)          {                  if (priv->peer.cm_id != NULL) {                          need_unref = 1; -                        connected = priv->connected;                          priv->connected = 0;                  } @@ -956,9 +955,7 @@ gf_rdma_cm_handle_disconnect (rpc_transport_t *this)          }          pthread_mutex_unlock (&priv->write_mutex); -        if (connected) { -                rpc_transport_notify (this, RPC_TRANSPORT_DISCONNECT, this); -        } +        rpc_transport_notify (this, RPC_TRANSPORT_DISCONNECT, this);          if (need_unref)                  rpc_transport_unref (this); diff --git a/rpc/xdr/src/portmap-xdr.x b/rpc/xdr/src/portmap-xdr.x index f60dcc76c8e..7380de5e9ca 100644 --- a/rpc/xdr/src/portmap-xdr.x +++ b/rpc/xdr/src/portmap-xdr.x @@ -47,6 +47,7 @@ struct pmap_signin_rsp {  struct pmap_signout_req {         string brick<>;         int port; +       int rdma_port;  };  struct pmap_signout_rsp { 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);  | 
