Re: [PATCH RFC 2/4] aio: prefer aio_op op over iter_op
From: Tadeusz Struk <hidden>
Date: 2015-03-12 14:00:59
Also in:
linux-crypto, linux-fsdevel
On 03/11/2015 11:48 PM, Al Viro wrote:
quoted
AIO interface should prefer AIO operations over iter_opWhat the devil for? read_iter and write_iter *ARE* aio operations, as much as soon to be removed aio_read and aio_write. And yes, those are going to be removed very soon.
That's fine. When those will get removed, then as part of the cleanup we can merge sock_read_iter() with sock_aio_read() and sock_write_iter() with sock_aio_write() and call sock_recvmsg()/sock_sendmsg() or sock->ops->aio_recvmsg()/sock->ops->aio_sendmsg based on if (is_sync_kiocb(iocb))
Note that ->read_iter() and ->write_iter() are getting iocb pointer passed to them. It's just that socket instances are not passing it along to ->sendmsg/->recvmsg anymore.
and that's the main reason why I have added the sock_aio_read() and sock_aio_write() I didn't want to mess with the sock_read_iter() and sock_write_iter() for now.
And why, in name of everything unholy, do your methods get redundant total_len argument? It's iov_iter_count(&msg->msg_iter) (and in iov_iter-net I have an inline helper doing that - enough places open-coding that thing). If nothing else, ->sendmsg() and ->recvmsg() would benefit from removing that argument as well. I have patches doing that, but iocb removal conflicts with them and they need to be rebased to current net/master...
You are right, it's not needed at all. I took the signatures from sendmsg() and recvmsg() and just added iocb. I will remove them in v2 if you want, or you can add it to your patches. -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>