diff options
author | Ravishankar N <ravishankar@redhat.com> | 2017-05-09 02:31:39 +0530 |
---|---|---|
committer | Raghavendra Talur <rtalur@redhat.com> | 2017-05-14 08:27:33 +0000 |
commit | 76fa6f9e21358db4c6a258afaf48f123b66ab343 (patch) | |
tree | 743dc59d809485aaa95ea26f3725436981ceda8b /contrib | |
parent | 6f96f914ad2cae5fd40889fb5e8bee1120aeeb11 (diff) |
afr: send the correct iatt values in fsync cbk
Problem:
afr unwinds the fsync fop with an iatt buffer from one of its children
on whom fsync was successful. But that child might not be a valid read
subvolume for that inode because of pending heals or because it happens
to be the arbiter brick etc. Thus we end up sending the wrong iatt to
mdcache which will in turn serve it to the application on a subsequent
stat call as reported in the BZ.
Fix:
Pick a child on whom the fsync was successful *and* that is readable as
indicated in the inode context.
> Reviewed-on: https://review.gluster.org/17227
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
> Smoke: Gluster Build System <jenkins@build.gluster.org>
(cherry picked from commit 1a8fa910ccba7aa941f673302c1ddbd7bd818e39)
Change-Id: Ie8647289219cebe02dde4727e19a729b3353ebcf
BUG: 1444892
RCA'ed-by: Miklós Fokin <miklos.fokin@appeartv.com>
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-on: https://review.gluster.org/17247
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions