From a2ee0b12f2296ef5148f7a67a4b4ce9ef25c7b0b Mon Sep 17 00:00:00 2001 From: Mohammed Rafi KC Date: Fri, 22 Apr 2016 12:07:31 +0530 Subject: [PATCH 101/104] tier/dht: check for rebalance completion for EIO error When an ongoing rebalance completion check task been triggered by dht, there is a possibility of a race between afr setting subvol as non-readable and dht updates the cached subvol. In this window a write can fail with EIO. Back port of> >Change-Id: I42638e6d4104c0dbe893d1bc73e1366188458c5d >BUG: 1329503 >Signed-off-by: Mohammed Rafi KC >Reviewed-on: http://review.gluster.org/14049 >NetBSD-regression: NetBSD Build System >Smoke: Gluster Build System >CentOS-regression: Gluster Build System >Reviewed-by: N Balachandran >Reviewed-by: Jeff Darcy >(cherry picked from commit a9ccd0c8ea6989c72073028b296f73a6fcb6b896) >Change-Id: Ifc741f05a9cfe5c1d9c03085312ebbf21b8b798b >BUG: 1330428 >Signed-off-by: Mohammed Rafi KC >Reviewed-on: http://review.gluster.org/14070 >Smoke: Gluster Build System >NetBSD-regression: NetBSD Build System >CentOS-regression: Gluster Build System >Reviewed-by: N Balachandran >Reviewed-by: Raghavendra G Change-Id: Iadbbd7920ee8fc982cad43a8c18ef7dab43e7c89 BUG: 1326248 Signed-off-by: Mohammed Rafi KC Reviewed-on: https://code.engineering.redhat.com/gerrit/73260 Reviewed-by: Susant Palai Reviewed-by: Raghavendra Gowdappa Tested-by: Raghavendra Gowdappa --- xlators/cluster/dht/src/dht-common.h | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h index 431a6d5..369b7d4 100644 --- a/xlators/cluster/dht/src/dht-common.h +++ b/xlators/cluster/dht/src/dht-common.h @@ -617,7 +617,9 @@ typedef struct dht_fd_ctx { } \ } while (0) -#define dht_inode_missing(op_errno) (op_errno == ENOENT || op_errno == ESTALE) +#define dht_inode_missing(op_errno) (op_errno == ENOENT || op_errno == ESTALE \ + || op_errno == EIO) \ +/*Bad fix. Please revert the commit after fixing the bug 1329505*/ #define check_is_dir(i,s,x) (IA_ISDIR(s->ia_type)) -- 1.7.1