summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ha/src/ha-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/ha/src/ha-helpers.c')
-rw-r--r--xlators/cluster/ha/src/ha-helpers.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xlators/cluster/ha/src/ha-helpers.c b/xlators/cluster/ha/src/ha-helpers.c
index 8193caf27f2..a88adad971a 100644
--- a/xlators/cluster/ha/src/ha-helpers.c
+++ b/xlators/cluster/ha/src/ha-helpers.c
@@ -24,6 +24,9 @@
#include "compat-errno.h"
#include "ha.h"
+#define HA_TRANSPORT_NOTCONN(_ret, _errno, _fd) \
+ ((_ret == -1) && (_fd ? (_errno == EBADFD):(_errno == ENOTCONN)))
+
int ha_alloc_init_fd (call_frame_t *frame, fd_t *fd)
{
ha_local_t *local = NULL;
@@ -111,7 +114,8 @@ int ha_handle_cbk (call_frame_t *frame, void *cookie, int op_ret, int op_errno)
gf_log (xl->name, GF_LOG_ERROR ,"(child=%s) (op_ret=%d op_errno=%s)",
children[prev_child]->name, op_ret, strerror (op_errno));
}
- if (op_ret == -1 && (op_errno == ENOTCONN)) {
+
+ if (HA_TRANSPORT_NOTCONN (op_ret, op_errno, (local->fd))) {
ret = 0;
if (local->fd) {
ret = fd_ctx_get (local->fd, xl, &tmp_hafdp);