diff options
| -rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 23 | 
1 files changed, 14 insertions, 9 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 94579782..aed81b83 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -5086,15 +5086,7 @@ unlock:             or wait for anything else. Just propagate blindly */          if (have_heard_from_all) {                  propagate = 1; -                if (conf->defrag) { -                        ret = pthread_create (&conf->defrag->th, NULL, -                                              gf_defrag_start, this); -                        if (ret) { -                                conf->defrag = NULL; -                                GF_FREE (conf->defrag); -                                kill (getpid(), SIGTERM); -                        } -                } +          } @@ -5116,6 +5108,19 @@ unlock:                                  /* continue to check other events for CHILD_UP */                          }                  } + +                /* rebalance is started with assert_no_child_down. So we do +                 * not need to handle CHILD_DOWN event here. +                 */ +                if (conf->defrag) { +                        ret = pthread_create (&conf->defrag->th, NULL, +                                              gf_defrag_start, this); +                        if (ret) { +                                conf->defrag = NULL; +                                GF_FREE (conf->defrag); +                                kill (getpid(), SIGTERM); +                        } +                }          }          ret = 0;  | 
