diff options
author | shishir gowda <gowda.shishir@gmail.com> | 2013-12-10 15:02:49 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2014-03-11 09:31:57 -0700 |
commit | 010a9a7867c7135dfedf52e5d2b34122a9cb1984 (patch) | |
tree | 13fa483164517556aa64ea6ad69b7a71dfd46631 /xlators/storage/posix/src/posix-helpers.c | |
parent | e8fca12ee9cc51ac8a4265454753a3c27dae93f8 (diff) |
dht: dht_lookup_dir_cbk should set op_errno as local->op_errnov3.4.3beta1
Two glusterfs clients return inconsistent errnos when the bricks of the volume
were down. Consider two gluster mounts. Mount 1 was done when the bricks were
online. Mount 2 was done after the bricks were killed, (using the 'glusterfs'
command instead of the mount script).
For any request, mount 1 will return ENOTCONN, where as mount 2 will return
ENOENT.
This happens because for the 2nd mount, a fuse would send a lookup on '/' for
any request, as it hadn't been done yet. The client xlator returns ENOTCONN,
but the dht_lookup_dir_cbk changed this to ENOENT unconditionally when
aggregating. So, fuse returned ENOENT, even though the errno should have been
ENOTCONN.
backporting http://review.gluster.org/6072
BUG: 1019095
Change-Id: Iaa40dffefddfcaf1ab7736f5423d7f9d2ece1363
Original-author: Kaushal M <kaushal@redhat.com>
Signed-off-by: shishir gowda <gowda.shishir@gmail.com>
Reviewed-on: http://review.gluster.org/6471
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/storage/posix/src/posix-helpers.c')
0 files changed, 0 insertions, 0 deletions