diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2012-11-05 21:42:22 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2012-12-03 00:11:02 -0800 |
commit | 2fd342a0c21d761d73bfee782717accbce819f24 (patch) | |
tree | 981acf4e2fe8f993b0bd520b7dba782ebd87b0de /xlators/cluster/afr/src/afr.c | |
parent | 07c3801808db787e6c0cf0b2bf60a7ab62bc38b7 (diff) |
cluster/afr: Provide option to disable readdir failover
In a replica pair unlike files, directories may not have their
content in same order, so readdir for same (offset, size) may
not give same entries on both the sobvolumes of replica pair.
Switching over from one subvolume to another may not be a good
idea sometimes. It may lead to duplicate entries or fewer entries
or both. This patch provides a way to disable readdir-failover
so that applications like rebalance can retry if they want to.
Change-Id: I2b23eb224a2e84016a561362932613ac824c11a0
BUG: 859387
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/4159
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr.c')
-rw-r--r-- | xlators/cluster/afr/src/afr.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index c120ba57b5f..cdc7a609b4d 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -189,6 +189,8 @@ reconfigure (xlator_t *this, dict_t *options) GF_OPTION_RECONF (AFR_SH_READDIR_SIZE_KEY, priv->sh_readdir_size, options, size, out); /* Reset this so we re-discover in case the topology changed. */ + GF_OPTION_RECONF ("readdir-failover", priv->readdir_failover, options, + bool, out); priv->did_discovery = _gf_false; ret = 0; @@ -332,6 +334,7 @@ init (xlator_t *this) fix_quorum_options(this,priv,qtype); GF_OPTION_INIT ("post-op-delay-secs", priv->post_op_delay_secs, uint32, out); + GF_OPTION_INIT ("readdir-failover", priv->readdir_failover, bool, out); priv->wait_count = 1; @@ -758,5 +761,10 @@ struct volume_options options[] = { .max = 131072, .default_value = "1KB", }, + { .key = {"readdir-failover"}, + .type = GF_OPTION_TYPE_BOOL, + .description = "readdir(p) will not failover if this option is off", + .default_value = "on", + }, { .key = {NULL} }, }; |