• Pavel Begunkov's avatar
    io_uring: refactor sendmsg/recvmsg iov managing · 257e84a5
    Pavel Begunkov authored
    Current iov handling with recvmsg/sendmsg may be confusing. First make a
    rule for msg->iov: either it points to an allocated iov that have to be
    kfree()'d later, or it's NULL and we use fast_iov. That's much better
    than current 3-state (also can point to fast_iov). And rename it into
    free_iov for uniformity with read/write.
    
    Also, instead of after struct io_async_msghdr copy fixing up of
    msg.msg_iter.iov has been happening in io_recvmsg()/io_sendmsg(). Move
    it into io_setup_async_msg(), that's the right place.
    Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
    [axboe: add comment on NULL check before kfree()]
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    257e84a5
io_uring.c 245 KB