yield wait_for_child();
int ret;
uint64_t stack_id;
- while (collect(&ret, skip_stack, &stack_id)) {
+ bool again = false;
+ do {
+ again = collect(&ret, skip_stack, &stack_id);
if (ret < 0) {
ldout(cct, 10) << "collect() returned ret=" << ret << dendl;
/* we should have reported this error */
if (cb) {
(*cb)(stack_id, ret);
}
- }
+ } while (again);
}
done = true;
}
yield wait_for_child();
int ret;
uint64_t stack_id;
- while (collect(&ret, nullptr, &stack_id)) {
+ bool again = false;
+ do {
+ again = collect(&ret, nullptr, &stack_id);
if (ret < 0) {
ldout(cct, 10) << "collect() returned ret=" << ret << dendl;
/* we should have reported this error */
num_cr_left = 0; /* need to drain all */
}
}
- }
+ } while (again);
}
done = true;
}