summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src/afr-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/afr/src/afr-common.c')
-rw-r--r--xlators/cluster/afr/src/afr-common.c38
1 files changed, 16 insertions, 22 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c
index d503609e8a2..dd6c1dfac5c 100644
--- a/xlators/cluster/afr/src/afr-common.c
+++ b/xlators/cluster/afr/src/afr-common.c
@@ -4374,27 +4374,21 @@ __afr_transform_event_from_state (afr_private_t *priv)
return GF_EVENT_MAXVAL;
up_children = __afr_get_up_children_count (priv);
- if (up_children) {
- /* We received at least one child up and there are pending
- * notifications from some children. Treat these children as
- * having sent a GF_EVENT_CHILD_DOWN. i.e. set the event as
- * GF_EVENT_CHILD_MODIFIED, as done in afr_notify() */
- for (i = 0; i < priv->child_count; i++) {
- if (priv->last_event[i])
- continue;
- priv->last_event[i] = GF_EVENT_CHILD_MODIFIED;
- priv->child_up[i] = 0;
- }
+ /* Treat the children with pending notification, as having sent a
+ * GF_EVENT_CHILD_DOWN. i.e. set the event as GF_EVENT_SOME_DESCENDENT_DOWN,
+ * as done in afr_notify() */
+ for (i = 0; i < priv->child_count; i++) {
+ if (priv->last_event[i])
+ continue;
+ priv->last_event[i] = GF_EVENT_SOME_DESCENDENT_DOWN;
+ priv->child_up[i] = 0;
+ }
+
+ if (up_children)
+ /* We received at least one child up */
return GF_EVENT_CHILD_UP;
- } else {
- for (i = 0; i < priv->child_count; i++) {
- if (priv->last_event[i])
- continue;
- priv->last_event[i] = GF_EVENT_SOME_CHILD_DOWN;
- priv->child_up[i] = 0;
- }
+ else
return GF_EVENT_CHILD_DOWN;
- }
return GF_EVENT_MAXVAL;
}
@@ -4563,7 +4557,7 @@ afr_notify (xlator_t *this, int32_t event,
"subvol=%s", this->name);
} else {
- event = GF_EVENT_CHILD_MODIFIED;
+ event = GF_EVENT_SOME_DESCENDENT_UP;
}
priv->last_event[idx] = event;
@@ -4587,7 +4581,7 @@ afr_notify (xlator_t *this, int32_t event,
gf_event (EVENT_AFR_SUBVOLS_DOWN,
"subvol=%s", this->name);
} else {
- event = GF_EVENT_SOME_CHILD_DOWN;
+ event = GF_EVENT_SOME_DESCENDENT_DOWN;
}
priv->last_event[idx] = event;
@@ -4599,7 +4593,7 @@ afr_notify (xlator_t *this, int32_t event,
break;
- case GF_EVENT_SOME_CHILD_DOWN:
+ case GF_EVENT_SOME_DESCENDENT_DOWN:
priv->last_event[idx] = event;
break;
case GF_EVENT_UPCALL: