Anthony Liguori wrote:
Gerd Hoffmann wrote:
Hi,
$subject says all.
please apply,
Gerd
Under what circumstances? posix_aio_read() is only invoked from a
select callback. This means there should be data available to be read.
Hmm, looked at the loop again a bit closer.
First, the check for errno == EAGAIN is superfluous when the filehandle
isn't in non-blocking mode. It will not happen.
Second, the check for errno == EINTR is superfluous too because the loop
will retry the read() syscall anyway for *any* error.
Third, when called from a select callback it shouldn't block indeed. It
does though for me now and then when booting xen guests (with a big
stack of xenner patches). Doesn't reproduce reliable though. Sprinkled
in a printk (with rfd being non-blocking) and got a EAGAIN once, so it
got called with rfd not having data.