summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ec/src/ec-common.h
diff options
context:
space:
mode:
authorXavier Hernandez <xhernandez@datalab.es>2015-01-07 12:29:48 +0100
committerPranith Kumar Karampuri <pkarampu@redhat.com>2015-05-09 17:29:46 -0700
commitb46e65db722c14985db62a1679e0388d217b713b (patch)
treefac847af8f529505bf364ed54df25658552fbae3 /xlators/cluster/ec/src/ec-common.h
parent73b61d709712692b48a1c9b18b4547410fb9078c (diff)
ec: Fix failures with missing files
When a file does not exist on a brick but it does on others, there could be problems trying to access it because there was some loc_t structures with null 'pargfid' but 'name' was set. This forced inode resolution based on <pargfid>/name instead of <gfid> which would be the correct one. To solve this problem, 'name' is always set to NULL when 'pargfid' is not present. Another problem was caused by an incorrect management of errors while doing incremental locking. The only allowed error during an incremental locking was ENOTCONN, but missing files on a brick can be returned as ESTALE. This caused an EIO on the operation. This patch doesn't care of errors during an incremental locking. At the end of the operation it will check if there are enough successfully locked bricks to continue or not. Change-Id: I9360ebf8d819d219cea2d173c09bd37679a6f15a BUG: 1176062 Signed-off-by: Xavier Hernandez <xhernandez@datalab.es> Reviewed-on: http://review.gluster.org/9407 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec-common.h')
-rw-r--r--xlators/cluster/ec/src/ec-common.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/xlators/cluster/ec/src/ec-common.h b/xlators/cluster/ec/src/ec-common.h
index 04f85a43f16..9e0aaa0f079 100644
--- a/xlators/cluster/ec/src/ec-common.h
+++ b/xlators/cluster/ec/src/ec-common.h
@@ -29,8 +29,6 @@ typedef enum {
#define EC_FLAG_UPDATE_FD 0x0004
#define EC_FLAG_UPDATE_FD_INODE 0x0008
-#define EC_FLAG_WAITING_WINDS 0x0010
-
#define EC_SELFHEAL_BIT 62
#define EC_MINIMUM_ONE -1
@@ -99,8 +97,6 @@ void ec_dispatch_inc(ec_fop_data_t * fop);
void ec_dispatch_min(ec_fop_data_t * fop);
void ec_dispatch_one(ec_fop_data_t * fop);
-void ec_wait_winds(ec_fop_data_t * fop);
-
void ec_sleep(ec_fop_data_t *fop);
void ec_resume(ec_fop_data_t * fop, int32_t error);
void ec_resume_parent(ec_fop_data_t * fop, int32_t error);