diff options
Diffstat (limited to 'xlators/cluster/ec/src/ec-combine.c')
| -rw-r--r-- | xlators/cluster/ec/src/ec-combine.c | 14 | 
1 files changed, 5 insertions, 9 deletions
diff --git a/xlators/cluster/ec/src/ec-combine.c b/xlators/cluster/ec/src/ec-combine.c index a98380adfb8..e605f7ba567 100644 --- a/xlators/cluster/ec/src/ec-combine.c +++ b/xlators/cluster/ec/src/ec-combine.c @@ -851,12 +851,9 @@ void ec_combine(ec_cbk_data_t * cbk, ec_combine_f combine)      ec_trace("ANSWER", fop, "combine=%s[%d]",               ec_bin(str, sizeof(str), cbk->mask, 0), cbk->count); -    if ((cbk->count == fop->expected) && (fop->answer == NULL)) -    { +    if ((cbk->count == fop->expected) && (fop->answer == NULL)) {          fop->answer = cbk; -        ec_update_bad(fop, cbk->mask); -          resume = 1;      } @@ -865,12 +862,11 @@ void ec_combine(ec_cbk_data_t * cbk, ec_combine_f combine)      UNLOCK(&fop->lock); -    if (needed > 0) -    { +    if (needed > 0) {          ec_dispatch_next(fop, cbk->idx); -    } -    else if (resume) -    { +    } else if (resume) { +        ec_update_bad(fop, cbk->mask); +          ec_resume(fop, 0);      }  }  | 
