d1681e
From 53649d22deea97c1604f5688ecab303eb46104d9 Mon Sep 17 00:00:00 2001
d1681e
From: Xavi Hernandez <xhernandez@redhat.com>
d1681e
Date: Wed, 28 Mar 2018 11:34:49 +0200
d1681e
Subject: [PATCH 210/212] cluster/ec: send list-node-uuids request to all
d1681e
 subvolumes
d1681e
d1681e
The xattr trusted.glusterfs.list-node-uuids was only sent to a single
d1681e
subvolume. This was returning null uuids from the other subvolumes as
d1681e
if they were down.
d1681e
d1681e
This fix forces that xattr to be requested from all subvolumes.
d1681e
d1681e
> Upstream patch: https://review.gluster.org/19784
d1681e
d1681e
Change-Id: If62eb39a6857258923ba625e153d4ad79018ea2f
d1681e
BUG: 1561733
d1681e
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
d1681e
Reviewed-on: https://code.engineering.redhat.com/gerrit/134066
d1681e
Tested-by: RHGS Build Bot <nigelb@redhat.com>
d1681e
Reviewed-by: Ashish Pandey <aspandey@redhat.com>
d1681e
---
d1681e
 tests/basic/ec/ec-rebalance.t | 1 +
d1681e
 xlators/cluster/ec/src/ec.c   | 2 +-
d1681e
 2 files changed, 2 insertions(+), 1 deletion(-)
d1681e
d1681e
diff --git a/tests/basic/ec/ec-rebalance.t b/tests/basic/ec/ec-rebalance.t
d1681e
index b5c3072..6cda3a3 100644
d1681e
--- a/tests/basic/ec/ec-rebalance.t
d1681e
+++ b/tests/basic/ec/ec-rebalance.t
d1681e
@@ -14,6 +14,7 @@ cleanup
d1681e
 TEST glusterd
d1681e
 TEST pidof glusterd
d1681e
 TEST $CLI volume create $V0 disperse 3 redundancy 1 $H0:$B0/${V0}{0..2}
d1681e
+TEST $CLI volume set $V0 lookup-optimize on
d1681e
 TEST $CLI volume start $V0
d1681e
 
d1681e
 #Mount the volume
d1681e
diff --git a/xlators/cluster/ec/src/ec.c b/xlators/cluster/ec/src/ec.c
d1681e
index 956b45b..eb91c4a 100644
d1681e
--- a/xlators/cluster/ec/src/ec.c
d1681e
+++ b/xlators/cluster/ec/src/ec.c
d1681e
@@ -881,7 +881,7 @@ ec_gf_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
d1681e
 
d1681e
         if (name &&
d1681e
             ((fnmatch (GF_XATTR_STIME_PATTERN, name, 0) == 0) ||
d1681e
-             (XATTR_IS_NODE_UUID(name)))) {
d1681e
+             XATTR_IS_NODE_UUID(name) || XATTR_IS_NODE_UUID_LIST(name))) {
d1681e
                 minimum = EC_MINIMUM_ALL;
d1681e
         }
d1681e
 
d1681e
-- 
d1681e
1.8.3.1
d1681e