From 0484b5768da303998549e8153d08899e58edab68 Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Tue, 21 Sep 2010 02:02:48 +0000 Subject: cli, mgmt/glusterd: send errno in case of Peer reject Signed-off-by: Pranith Kumar K Signed-off-by: Vijay Bellur BUG: 1653 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1653 --- xlators/mgmt/glusterd/src/glusterd-handler.c | 5 +++-- xlators/mgmt/glusterd/src/glusterd-sm.c | 4 +++- xlators/mgmt/glusterd/src/glusterd.h | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 112ca296bb2..bb297b0cc51 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -2869,7 +2869,7 @@ glusterd_xfer_friend_remove_resp (rpcsvc_request_t *req, char *hostname, int por int glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, int port, - int32_t op_ret) + int32_t op_ret, int32_t op_errno) { gd1_mgmt_friend_rsp rsp = {{0}, }; int32_t ret = -1; @@ -2878,13 +2878,14 @@ glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, int port, GF_ASSERT (hostname); - rsp.op_ret = op_ret; this = THIS; GF_ASSERT (this); conf = this->private; uuid_copy (rsp.uuid, conf->uuid); + rsp.op_ret = op_ret; + rsp.op_errno = op_errno; rsp.hostname = gf_strdup (hostname); rsp.port = port; diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.c b/xlators/mgmt/glusterd/src/glusterd-sm.c index 025fee7755a..c5e1800cd82 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-sm.c @@ -352,6 +352,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) glusterd_friend_sm_event_type_t event_type = GD_FRIEND_EVENT_NONE; int status = 0; int32_t op_ret = -1; + int32_t op_errno = 0; char remote_hostname[UNIX_PATH_MAX + 1] = {0,}; GF_ASSERT (ctx); @@ -372,6 +373,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) } else { event_type = GD_FRIEND_EVENT_LOCAL_RJT; + op_errno = GF_PROBE_VOLUME_CONFLICT; op_ret = -1; } @@ -406,7 +408,7 @@ glusterd_ac_handle_friend_add_req (glusterd_friend_sm_event_t *event, void *ctx) glusterd_friend_sm_inject_event (new_event); ret = glusterd_xfer_friend_add_resp (ev_ctx->req, ev_ctx->hostname, - ev_ctx->port, op_ret); + ev_ctx->port, op_ret, op_errno); out: gf_log ("", GF_LOG_DEBUG, "Returning with %d", ret); diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h index 48d78bc339a..b9890760f71 100644 --- a/xlators/mgmt/glusterd/src/glusterd.h +++ b/xlators/mgmt/glusterd/src/glusterd.h @@ -226,7 +226,7 @@ glusterd_probe_begin (rpcsvc_request_t *req, const char *hoststr, int port); int glusterd_xfer_friend_add_resp (rpcsvc_request_t *req, char *hostname, - int port, int32_t op_ret); + int port, int32_t op_ret, int32_t op_errno); int glusterd_friend_find (uuid_t uuid, char *hostname, -- cgit