diff options
| author | Mohammed Rafi KC <rkavunga@redhat.com> | 2016-09-27 19:01:48 +0530 |
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2017-01-02 05:04:57 -0800 |
| commit | 5d48a61253b39939b78b1cc8afccc9585d229df5 (patch) | |
| tree | aeb4044d85290114d15d79b1066504c6194ca197 /xlators/nfs/server/src/nfs-common.h | |
| parent | d5ccb525d3c865ea5eba9f7b79b76bc1db76906f (diff) | |
nfs: revalidate lookup converted to fresh lookup
Backport of http://review.gluster.org/15580
when an inode ctx is missing for a linked inode the revalidate
lookups are converted to fresh.
This could result in sending ESTALE when the gfid are recreated
We are not able to reproduce the issue with normal setup, most part of
RCA was done with code reading.
Possible scenario in which this bug can reproduce,
Delete a file and recreate a new file with same name, at the same time
from another client process try to list/or access the file.
In this case the second client may throw an ESTALE error for such files
Thanks to Soumya and Pranith for doing the complete RCA
>Change-Id: I73992a65844b09a169cefaaedc0dcfb129d66ea1
>BUG: 1379720
>Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
>Reviewed-on: http://review.gluster.org/15580
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
>Smoke: Gluster Build System <jenkins@build.gluster.org>
>Reviewed-by: soumya k <skoduri@redhat.com>
>Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Change-Id: Ifd0d92e29e409e5b23790b677034cfc8f3184d1a
BUG: 1394635
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Reviewed-on: http://review.gluster.org/15840
Smoke: Gluster Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/nfs/server/src/nfs-common.h')
| -rw-r--r-- | xlators/nfs/server/src/nfs-common.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xlators/nfs/server/src/nfs-common.h b/xlators/nfs/server/src/nfs-common.h index 77bdfb0bbf0..8c9a1e33457 100644 --- a/xlators/nfs/server/src/nfs-common.h +++ b/xlators/nfs/server/src/nfs-common.h @@ -57,7 +57,8 @@ nfs_ino_loc_fill (inode_table_t *itable, uuid_t gfid, loc_t *l); extern int nfs_entry_loc_fill (xlator_t *this, inode_table_t *itable, uuid_t pargfid, - char *entry, loc_t *loc, int how); + char *entry, loc_t *loc, int how, + gf_boolean_t *freshlookup); extern int nfs_root_loc_fill (inode_table_t *itable, loc_t *loc); |
