fix asynchronous ioctls
posix_aio_read expect aio requests to return the number of bytes requests to be successfull, so we need to fake this up for ioctls. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
e8a6aec9b5
commit
e7d54ae83c
@ -90,7 +90,16 @@ static size_t handle_aiocb_ioctl(struct qemu_paiocb *aiocb)
|
||||
ret = ioctl(aiocb->aio_fildes, aiocb->aio_ioctl_cmd, aiocb->aio_ioctl_buf);
|
||||
if (ret == -1)
|
||||
return -errno;
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* This looks weird, but the aio code only consideres a request
|
||||
* successfull if it has written the number full number of bytes.
|
||||
*
|
||||
* Now we overload aio_nbytes as aio_ioctl_cmd for the ioctl command,
|
||||
* so in fact we return the ioctl command here to make posix_aio_read()
|
||||
* happy..
|
||||
*/
|
||||
return aiocb->aio_nbytes;
|
||||
}
|
||||
|
||||
#ifdef HAVE_PREADV
|
||||
|
Loading…
Reference in New Issue
Block a user