• Jens Axboe's avatar
    iov_iter: add ITER_BVEC_FLAG_NO_REF flag · 875f1d07
    Jens Axboe authored
    For ITER_BVEC, if we're holding on to kernel pages, the caller
    doesn't need to grab a reference to the bvec pages, and drop that
    same reference on IO completion. This is essentially safe for any
    ITER_BVEC, but some use cases end up reusing pages and uncondtionally
    dropping a page reference on completion. And example of that is
    sendfile(2), that ends up being a splice_in + splice_out on the
    pipe pages.
    
    Add a flag that tells us it's fine to not grab a page reference
    to the bvec pages, since that caller knows not to drop a reference
    when it's done with the pages.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    875f1d07
io_uring.c 68.7 KB