diff options
author | N Balachandran <nbalacha@redhat.com> | 2019-01-29 09:47:32 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2019-02-02 03:09:36 +0000 |
commit | da5ae3afcd1b16bb0f2f9bffc1878b17b75429ed (patch) | |
tree | 1826c366c3aeaeb43a4cd25bb7d7ad4dba694660 /xlators/cluster/dht/src/dht-common.h | |
parent | 23e530a135fc419fba401448290f8b1809e23f53 (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.h | 4 |
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; |