summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
Diffstat (limited to 'xlators')
-rw-r--r--xlators/cluster/afr/src/afr-common.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c
index 96ed41d3abf..4dd5d74a16b 100644
--- a/xlators/cluster/afr/src/afr-common.c
+++ b/xlators/cluster/afr/src/afr-common.c
@@ -692,6 +692,10 @@ afr_replies_interpret (call_frame_t *frame, xlator_t *this, inode_t *inode)
data_readable[i] = 1;
metadata_readable[i] = 1;
}
+ if (AFR_IS_ARBITER_BRICK (priv, ARBITER_BRICK_INDEX)) {
+ data_readable[ARBITER_BRICK_INDEX] = 0;
+ metadata_readable[ARBITER_BRICK_INDEX] = 0;
+ }
for (i = 0; i < priv->child_count; i++) {
if (!replies[i].valid) {
@@ -1789,6 +1793,10 @@ unwind:
read_subvol = spb_choice;
else
read_subvol = afr_first_up_child (frame, this);
+ if (AFR_IS_ARBITER_BRICK (priv, read_subvol)) {
+ local->op_ret = -1;
+ local->op_errno = ENOTCONN;
+ }
}
par_read_subvol = afr_get_parent_read_subvol (this, parent, replies,
readable);