diff options
author | Xavier Hernandez <xhernandez@datalab.es> | 2015-08-07 12:37:52 +0200 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-08-14 02:09:46 -0700 |
commit | 289d00369f0ddb78f534735f7d3bf86268adac60 (patch) | |
tree | cbc347422a3871c8ea1a24ce8b21ec1ac7902962 /xlators/cluster/ec/src/ec-data.h | |
parent | 7641eb8b469a6dd4db6db59d2a5ef4d5a65e1a61 (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.h | 1 |
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; |