summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2011-08-01 17:11:59 +0530
committerAnand Avati <avati@gluster.com>2011-08-03 22:32:39 -0700
commit893f52ec6318ba3083a6bf5c86bb495dc786ee5b (patch)
tree6c47d8e51f27bfb9e0b721795d962419dc32700e /xlators
parent14bc17013d2962b311868d866484bbdb26665225 (diff)
glusterd rebalance: handle a race condition while starting a rebalance
due to the race, there was a possibility of having two (or more) threads doing glusterd_defrag_start(), which would cause different thread to access same pointer, and at some point making it NULL, causing other threads to crash with SEGV. Change-Id: Id05b99dd6f33329027b8a07f1c8da5a65fd6dae9 BUG: 3295 Reviewed-on: http://review.gluster.com/140 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index 7307f7c..682e41c 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -2259,8 +2259,7 @@ out:
int
glusterd_is_defrag_on (glusterd_volinfo_t *volinfo)
{
- return ((volinfo->defrag_status == GF_DEFRAG_STATUS_LAYOUT_FIX_STARTED) ||
- (volinfo->defrag_status == GF_DEFRAG_STATUS_MIGRATE_DATA_STARTED));
+ return (volinfo->defrag != NULL);
}
int