path: root/xlators/cluster/ec/src/ec.c
diff options
authorXavier Hernandez <>2017-05-12 09:23:47 +0200
committerPranith Kumar Karampuri <>2017-05-17 17:49:52 +0000
commitbcc34ce05c1be76dae42838d55c15d3af5f80e48 (patch)
treecb673b3b95c25e9fef0c13c295d368685835ea65 /xlators/cluster/ec/src/ec.c
parentbe14d189360d09f8e10e6b75326df6d1db306467 (diff)
cluster/ec: return all node uuids from all subvolumes
EC was retuning the UUID of the brick with smaller value. This had the side effect of not evenly balancing the load between bricks on rebalance operations. This patch modifies the common functions that combine multiple subvolume values into a single result to take into account the subvolume order and, optionally, other subvolumes that could be damaged. This makes easier to add future features where brick order is important. It also makes possible to easily identify the originating brick of each answer, in case some brick will have an special meaning in the future. Change-Id: Iee0a4da710b41224a6dc8e13fa8dcddb36c73a2f BUG: 1366817 Signed-off-by: Xavier Hernandez <> Reviewed-on: Smoke: Gluster Build System <> NetBSD-regression: NetBSD Build System <> CentOS-regression: Gluster Build System <> Reviewed-by: Ashish Pandey <> Reviewed-by: Pranith Kumar Karampuri <>
Diffstat (limited to 'xlators/cluster/ec/src/ec.c')
1 files changed, 4 insertions, 1 deletions
diff --git a/xlators/cluster/ec/src/ec.c b/xlators/cluster/ec/src/ec.c
index e628183190e..2009faccbaf 100644
--- a/xlators/cluster/ec/src/ec.c
+++ b/xlators/cluster/ec/src/ec.c
@@ -863,8 +863,11 @@ ec_gf_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
NULL, ec_marker_populate_args) == 0)
return 0;
- if (name && (fnmatch (GF_XATTR_STIME_PATTERN, name, 0) == 0))
+ if (name &&
+ ((fnmatch (GF_XATTR_STIME_PATTERN, name, 0) == 0) ||
+ (XATTR_IS_NODE_UUID(name)))) {
minimum = EC_MINIMUM_ALL;
+ }
ec_getxattr (frame, this, -1, minimum, default_getxattr_cbk,
NULL, loc, name, xdata);