summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-common.h
diff options
context:
space:
mode:
authorN Balachandran <nbalacha@redhat.com>2019-01-29 09:47:32 +0530
committerAmar Tumballi <amarts@redhat.com>2019-02-02 03:09:36 +0000
commitda5ae3afcd1b16bb0f2f9bffc1878b17b75429ed (patch)
tree1826c366c3aeaeb43a4cd25bb7d7ad4dba694660 /xlators/cluster/dht/src/dht-common.h
parent23e530a135fc419fba401448290f8b1809e23f53 (diff)
cluster/dht: Do not use gfid-req in fresh lookup
Fuse sets a random gfid-req value for a fresh lookup. Posix lookup will set this gfid on entries with missing gfids causing a GFID mismatch for directories. DHT will now ignore the Fuse provided gfid-req and use the GFID returned from other subvols to heal the missing gfid. Change-Id: I5f541978808f246ba4542564251e341ec490db14 fixes: bz#1670259 Signed-off-by: N Balachandran <nbalacha@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-common.h')
-rw-r--r--xlators/cluster/dht/src/dht-common.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h
index 6fb1c16d0d8..c516271228e 100644
--- a/xlators/cluster/dht/src/dht-common.h
+++ b/xlators/cluster/dht/src/dht-common.h
@@ -323,7 +323,7 @@ struct dht_local {
uint32_t uid;
uint32_t gid;
- pid_t pid;
+ pid_t pid;
/* needed by nufa */
int32_t flags;
@@ -341,6 +341,7 @@ struct dht_local {
/* gfid related */
uuid_t gfid;
+ uuid_t gfid_req;
/* flag used to make sure we need to return estale in
{lookup,revalidate}_cbk */
@@ -385,6 +386,7 @@ struct dht_local {
loc_t loc2_copy;
gf_boolean_t locked;
gf_boolean_t dont_create_linkto;
+ gf_boolean_t gfid_missing;
};
typedef struct dht_local dht_local_t;