diff options
author | Ravishankar N <ravishankar@redhat.com> | 2019-08-22 17:27:22 +0530 |
---|---|---|
committer | Ravishankar N <ravishankar@redhat.com> | 2019-08-30 04:23:02 +0000 |
commit | 600ba94183333c4af9b4a09616690994fd528478 (patch) | |
tree | c2e052e3fc0dd55115a1a65d6c5d928e578af44a /xlators/cluster/afr/src/afr-self-heald.c | |
parent | 77895e92351a8e6257c2e2aaff431446f865fe0b (diff) |
afr: wake up index healer threads
...whenever shd is re-enabled after disabling or there is a change in
`cluster.heal-timeout`, without needing to restart shd or waiting for the
current `cluster.heal-timeout` seconds to expire.
See BZ 1743988 for more details.
Change-Id: Ia5ebd7c8e9f5b54cba3199c141fdd1af2f9b9bfe
fixes: bz#1744548
Reported-by: Glen Kiessling <glenk1973@hotmail.com>
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-self-heald.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heald.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heald.c b/xlators/cluster/afr/src/afr-self-heald.c index 9c94835714f..8b4d2dc9cd1 100644 --- a/xlators/cluster/afr/src/afr-self-heald.c +++ b/xlators/cluster/afr/src/afr-self-heald.c @@ -1308,12 +1308,18 @@ out: return ret; } -int -afr_selfheal_childup(xlator_t *this, int subvol) +void +afr_selfheal_childup(xlator_t *this, afr_private_t *priv) { - afr_shd_index_healer_spawn(this, subvol); + int subvol = 0; - return 0; + if (!priv->shd.iamshd) + return; + for (subvol = 0; subvol < priv->child_count; subvol++) + if (priv->child_up[subvol]) + afr_shd_index_healer_spawn(this, subvol); + + return; } int |