diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2011-07-18 12:30:17 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-10-17 06:13:56 -0700 |
commit | ab2b2fefdcb10aa29749190b9e908b3bc81d86e5 (patch) | |
tree | d028703a64e86a9be31ec81f4c5ef4e7465817ee /xlators/cluster/afr/src/afr-dir-read.c | |
parent | 57abdb20ade542e9f57461ec953dad8ca93b23c7 (diff) |
cluster/afr: Handle lookups when self-heal is off
Change-Id: Ibc23fef417bcf613850e03dc4dadcc88f89e2b6f
BUG: 2586
Reviewed-on: http://review.gluster.com/59
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-dir-read.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-dir-read.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/xlators/cluster/afr/src/afr-dir-read.c b/xlators/cluster/afr/src/afr-dir-read.c index e626a6f1a95..3f056b68628 100644 --- a/xlators/cluster/afr/src/afr-dir-read.c +++ b/xlators/cluster/afr/src/afr-dir-read.c @@ -70,15 +70,19 @@ gf_boolean_t __checksums_differ (uint32_t *checksum, int child_count, unsigned char *child_up) { - int ret = _gf_false; - int i = 0; - uint32_t cksum = 0; - - cksum = checksum[0]; + int ret = _gf_false; + int i = 0; + uint32_t cksum = 0; + gf_boolean_t activate_check = _gf_false; for (i = 0; i < child_count; i++) { if (!child_up[i]) continue; + if (_gf_false == activate_check) { + cksum = checksum[i]; + activate_check = _gf_true; + continue; + } if (cksum != checksum[i]) { ret = _gf_true; |