diff options
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 79644b740..030256417 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -2592,9 +2592,11 @@ afr_flush_wrapper (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)          int           i      = 0;          afr_local_t   *local = NULL;          afr_private_t *priv  = NULL; +        int call_count       = -1;          priv = this->private;          local = frame->local; +        call_count = local->call_count;          for (i = 0; i < priv->child_count; i++) {                  if (local->child_up[i]) { @@ -2603,6 +2605,9 @@ afr_flush_wrapper (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)                                             priv->children[i],                                             priv->children[i]->fops->flush,                                             local->fd, NULL); +                        if (!--call_count) +                                break; +                  }          }  | 
