• Jens Axboe's avatar
    io_uring/rw: allow pollable non-blocking attempts for !FMODE_NOWAIT · f7c91343
    Jens Axboe authored
    The checking for whether or not io_uring can do a non-blocking read or
    write attempt is gated on FMODE_NOWAIT. However, if the file is
    pollable, it's feasible to just check if it's currently in a state in
    which it can sanely receive or send _some_ data.
    
    This avoids unnecessary io-wq punts, and repeated worthless retries
    before doing that punt, by assuming that some data can get delivered
    or received if poll tells us that is true. It also allows multishot
    reads to properly work with these types of files, enabling a bit of
    a cleanup of the logic that:
    
    c9d952b9 ("io_uring/rw: fix cflags posting for single issue multishot read")
    
    had to put in place.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    f7c91343
rw.c 30.8 KB