summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ec/src/ec-data.h
diff options
context:
space:
mode:
authorXavier Hernandez <xhernandez@datalab.es>2015-08-07 12:37:52 +0200
committerPranith Kumar Karampuri <pkarampu@redhat.com>2015-08-14 02:09:46 -0700
commit289d00369f0ddb78f534735f7d3bf86268adac60 (patch)
treecbc347422a3871c8ea1a24ce8b21ec1ac7902962 /xlators/cluster/ec/src/ec-data.h
parent7641eb8b469a6dd4db6db59d2a5ef4d5a65e1a61 (diff)
cluster/ec: Fix write size in self-heal
Self-heal was always using a fixed block size to heal a file. This was incorrect for dispersed volumes with a number of data bricks not being a power of 2. This patch adjusts the block size to a multiple of the stripe size of the volume. It also propagates errors detected during the data heal to stop healing the file and not mark it as healed. Change-Id: I9ee3fde98a9e5d6116fd096ceef88686fd1d28e2 BUG: 1251446 Signed-off-by: Xavier Hernandez <xhernandez@datalab.es> Reviewed-on: http://review.gluster.org/11862 Tested-by: NetBSD Build System <jenkins@build.gluster.org> 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-data.h')
-rw-r--r--xlators/cluster/ec/src/ec-data.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec-data.h b/xlators/cluster/ec/src/ec-data.h
index 285f71e702d..8a48a7ca824 100644
--- a/xlators/cluster/ec/src/ec-data.h
+++ b/xlators/cluster/ec/src/ec-data.h
@@ -283,6 +283,7 @@ struct _ec_heal
fd_t *fd;
int32_t partial;
int32_t done;
+ int32_t error;
gf_boolean_t nameheal;
uintptr_t available;
uintptr_t good;