From bcc34ce05c1be76dae42838d55c15d3af5f80e48 Mon Sep 17 00:00:00 2001 From: Xavier Hernandez Date: Fri, 12 May 2017 09:23:47 +0200 Subject: 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: https://review.gluster.org/17297 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Ashish Pandey Reviewed-by: Pranith Kumar Karampuri --- xlators/cluster/ec/src/ec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'xlators/cluster/ec/src/ec.c') 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); -- cgit