This looks better, but there are still some issues: The patch arrived here with tabs expanded into spaces, so it doesn't apply. The EAGAIN fix by Mingming Cao is obviously incomplete, as I've mentioned in a separate message to linux-aio. I think it would be better if you would leave this out of this patch and let it be handled separately. async_poll_complete() is dead code and should be removed (this was an issue in the original 2.4.19 code). You should not reintroduce the ki_data member of struct iocb. Insead you should use the existing private member of struct iocb. In aio_abi.h, you should adjust the preceeding comment to remove mention of IOCB_CMD_POLL. Incidentally, this patch depends on the sys_io_cancel() portion of the patch I posted yesterday in order for cancellation to return the correct result to user space.