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;  | 
