diff options
| -rw-r--r-- | libglusterfs/src/defaults-tmpl.c | 1 | ||||
| -rw-r--r-- | rpc/xdr/src/glusterfs-fops.x | 9 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 38 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 7 | ||||
| -rw-r--r-- | xlators/cluster/ec/src/ec.c | 6 | ||||
| -rw-r--r-- | xlators/nfs/server/src/nfs.c | 3 | ||||
| -rw-r--r-- | xlators/performance/md-cache/src/md-cache.c | 8 | 
7 files changed, 34 insertions, 38 deletions
diff --git a/libglusterfs/src/defaults-tmpl.c b/libglusterfs/src/defaults-tmpl.c index b42c377ca31..5b7578b7c57 100644 --- a/libglusterfs/src/defaults-tmpl.c +++ b/libglusterfs/src/defaults-tmpl.c @@ -132,7 +132,6 @@ default_notify (xlator_t *this, int32_t event, void *data, ...)          }          break;          case GF_EVENT_CHILD_CONNECTING: -        case GF_EVENT_CHILD_MODIFIED:          case GF_EVENT_CHILD_DOWN:          case GF_EVENT_CHILD_UP:          case GF_EVENT_AUTH_FAILED: diff --git a/rpc/xdr/src/glusterfs-fops.x b/rpc/xdr/src/glusterfs-fops.x index 3b73499814d..7b0bcb33213 100644 --- a/rpc/xdr/src/glusterfs-fops.x +++ b/rpc/xdr/src/glusterfs-fops.x @@ -77,6 +77,9 @@ enum glusterfs_fop_t {          GF_FOP_MAXVALUE  }; +/* Note: Removed event GF_EVENT_CHILD_MODIFIED=8, hence + *to preserve backward compatibiliy, GF_EVENT_TRANSPORT_CLEANUP = 9 + */  enum glusterfs_event_t {          GF_EVENT_PARENT_UP = 1,          GF_EVENT_POLLIN, @@ -85,8 +88,7 @@ enum glusterfs_event_t {          GF_EVENT_CHILD_UP,          GF_EVENT_CHILD_DOWN,          GF_EVENT_CHILD_CONNECTING, -        GF_EVENT_CHILD_MODIFIED, -        GF_EVENT_TRANSPORT_CLEANUP, +        GF_EVENT_TRANSPORT_CLEANUP = 9,          GF_EVENT_TRANSPORT_CONNECTED,          GF_EVENT_VOLFILE_MODIFIED,          GF_EVENT_GRAPH_NEW, @@ -98,8 +100,9 @@ enum glusterfs_event_t {          GF_EVENT_VOLUME_BARRIER_OP,          GF_EVENT_UPCALL,          GF_EVENT_SCRUB_STATUS, -        GF_EVENT_SOME_CHILD_DOWN, +        GF_EVENT_SOME_DESCENDENT_DOWN,          GF_EVENT_SCRUB_ONDEMAND, +        GF_EVENT_SOME_DESCENDENT_UP,          GF_EVENT_MAXVAL  }; 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: diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index ab3b893d151..a85627a683e 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -8915,15 +8915,14 @@ dht_notify (xlator_t *this, int event, void *data, ...)                  break; -        case GF_EVENT_CHILD_MODIFIED: +        case GF_EVENT_SOME_DESCENDENT_UP:                  subvol = data; -                  conf->gen++;                  propagate = 1;                  break; -        case GF_EVENT_SOME_CHILD_DOWN: +        case GF_EVENT_SOME_DESCENDENT_DOWN:                  subvol = data;                  propagate = 1; @@ -8968,7 +8967,7 @@ dht_notify (xlator_t *this, int event, void *data, ...)                  for (i = 0; i < conf->subvolume_cnt; i++)                          if (conf->last_event[i] != event) -                                event = GF_EVENT_CHILD_MODIFIED; +                                event = GF_EVENT_SOME_DESCENDENT_DOWN;                  break;          case GF_EVENT_CHILD_CONNECTING: diff --git a/xlators/cluster/ec/src/ec.c b/xlators/cluster/ec/src/ec.c index e10de4e38aa..97786657071 100644 --- a/xlators/cluster/ec/src/ec.c +++ b/xlators/cluster/ec/src/ec.c @@ -471,6 +471,7 @@ ec_notify (xlator_t *this, int32_t event, void *data, void *data2)          dict_t            *input    = NULL;          dict_t            *output   = NULL;          gf_boolean_t      propagate = _gf_true; +        int32_t           orig_event = event;          gf_msg_trace (this->name, 0, "NOTIFY(%d): %p, %p",                  event, data, data2); @@ -529,7 +530,10 @@ ec_notify (xlator_t *this, int32_t event, void *data, void *data2)                  if (event != GF_EVENT_MAXVAL) {                          if (event == old_event) { -                                event = GF_EVENT_CHILD_MODIFIED; +                                if (orig_event == GF_EVENT_CHILD_UP) +                                        event = GF_EVENT_SOME_DESCENDENT_UP; +                                else /* orig_event has to be GF_EVENT_CHILD_DOWN */ +                                        event = GF_EVENT_SOME_DESCENDENT_DOWN;                          }                  } else {                          propagate = _gf_false; diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index ddfa89dab11..3e7199c036d 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -1542,7 +1542,8 @@ notify (xlator_t *this, int32_t event, void *data, ...)                  nfs_startup_subvolume (this, subvol);                  break; -        case GF_EVENT_CHILD_MODIFIED: +        case GF_EVENT_SOME_DESCENDENT_DOWN: +        case GF_EVENT_SOME_DESCENDENT_UP:                  priv = this->private;                  ++(priv->generation);                  break; diff --git a/xlators/performance/md-cache/src/md-cache.c b/xlators/performance/md-cache/src/md-cache.c index 42c86a2fb07..aa1c22ade51 100644 --- a/xlators/performance/md-cache/src/md-cache.c +++ b/xlators/performance/md-cache/src/md-cache.c @@ -2897,7 +2897,7 @@ notify (xlator_t *this, int event, void *data, ...)          conf = this->private;          switch (event) {          case GF_EVENT_CHILD_DOWN: -        case GF_EVENT_SOME_CHILD_DOWN: +        case GF_EVENT_SOME_DESCENDENT_DOWN:                  time (&now);                  mdc_update_child_down_time (this, &now);                  break; @@ -2905,12 +2905,8 @@ notify (xlator_t *this, int event, void *data, ...)                  if (conf->mdc_invalidation)                          ret = mdc_invalidate (this, data);                  break; -        case GF_EVENT_CHILD_MODIFIED: -                time (&now); -                mdc_update_child_down_time (this, &now); -                ret = mdc_register_xattr_inval (this); -                break;          case GF_EVENT_CHILD_UP: +        case GF_EVENT_SOME_DESCENDENT_UP:                  ret = mdc_register_xattr_inval (this);                  break;          default:  | 
