Searched hist:f785a5ae36c92fbeb8e0e8c9d71f5789cbce8b29 (Results 1 – 1 of 1) sorted by relevance
/openbmc/qemu/block/ |
H A D | curl.c | diff f785a5ae36c92fbeb8e0e8c9d71f5789cbce8b29 Mon Aug 15 04:00:34 CDT 2011 Nicholas Thomas <nick@bytemark.co.uk> block/curl: Handle failed reads gracefully.
Current behaviour if a read fails is for the acb to not get finished. This causes an infinite loop in bdrv_read_em (block.c). The read failure never gets reported to the guest and if the error condition clears, the process never recovers.
With this patch, when curl reports a failure we finish the acb as a failure. This results in the guest receiving an I/O error (rather than the read hanging indefinitely) and if the error condition subsequently clears, retries work as expected.
The simplest test is to put an ISO on a web server you have control over and open it with qemu-io. Then move the ISO out of the way and attempt to read some data - you should see behaviour matching the above.
Signed-off-by: Nick Thomas <nick@bytemark.co.uk> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|