d1681e
From a263e2a308221de328eb5e0dc4cb9c0aed98ec37 Mon Sep 17 00:00:00 2001
d1681e
From: N Balachandran <nbalacha@redhat.com>
d1681e
Date: Thu, 5 Apr 2018 21:41:44 +0530
d1681e
Subject: [PATCH 216/236] cluster/dht: Wind open to all subvols
d1681e
d1681e
dht_opendir should wind the open to all subvols
d1681e
whether or not local->subvols is set. This is
d1681e
because dht_readdirp winds the calls to all subvols.
d1681e
d1681e
upstream master: https://review.gluster.org/19827
d1681e
d1681e
> Change-Id: I67a96b06dad14a08967c3721301e88555aa01017
d1681e
> updates: bz#1564198
d1681e
> Signed-off-by: N Balachandran <nbalacha@redhat.com>
d1681e
d1681e
Change-Id: Ibdb099c333bc23d0cb769a7636c949ab886b87e2
d1681e
BUG: 1553677
d1681e
Signed-off-by: N Balachandran <nbalacha@redhat.com>
d1681e
Reviewed-on: https://code.engineering.redhat.com/gerrit/135514
d1681e
Tested-by: RHGS Build Bot <nigelb@redhat.com>
d1681e
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
d1681e
---
d1681e
 xlators/cluster/dht/src/dht-common.c | 15 +++++----------
d1681e
 1 file changed, 5 insertions(+), 10 deletions(-)
d1681e
d1681e
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
d1681e
index 2fd145d..3b8ba6d 100644
d1681e
--- a/xlators/cluster/dht/src/dht-common.c
d1681e
+++ b/xlators/cluster/dht/src/dht-common.c
d1681e
@@ -6315,16 +6315,11 @@ dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd,
d1681e
                         "Failed to set dictionary value : key = %s",
d1681e
                         conf->link_xattr_name);
d1681e
 
d1681e
-        if ((conf->defrag && conf->defrag->cmd == GF_DEFRAG_CMD_START_TIER) ||
d1681e
-            (conf->defrag && conf->defrag->cmd ==
d1681e
-             GF_DEFRAG_CMD_START_DETACH_TIER) ||
d1681e
-            (!(conf->local_subvols_cnt) || !conf->defrag)) {
d1681e
-                call_count = local->call_cnt = conf->subvolume_cnt;
d1681e
-                subvolumes = conf->subvolumes;
d1681e
-        } else {
d1681e
-                call_count = local->call_cnt = conf->local_subvols_cnt;
d1681e
-                subvolumes = conf->local_subvols;
d1681e
-        }
d1681e
+        /* dht_readdirp will wind to all subvols so open has to be sent to
d1681e
+         * all subvols whether or not conf->local_subvols is set */
d1681e
+
d1681e
+        call_count = local->call_cnt = conf->subvolume_cnt;
d1681e
+        subvolumes = conf->subvolumes;
d1681e
 
d1681e
         /* In case of parallel-readdir, the readdir-ahead will be loaded
d1681e
          * below dht, in this case, if we want to enable or disable SKIP_DIRs
d1681e
-- 
d1681e
1.8.3.1
d1681e