Checking just a single server is not enough - all of them must have
signaled that they're done processing the request.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
return false;
}
- sv = get_pending_vcpu(v, &s);
- if ( sv && !wait_for_io(sv, get_ioreq(s, v)) )
- return false;
+ while ( (sv = get_pending_vcpu(v, &s)) != NULL )
+ if ( !wait_for_io(sv, get_ioreq(s, v)) )
+ return false;
vio->req.state = ioreq_needs_completion(&vio->req) ?
STATE_IORESP_READY : STATE_IOREQ_NONE;