• Linus Torvalds's avatar
    Merge tag 'io_uring-5.5-20191212' of git://git.kernel.dk/linux-block · 5bd831a4
    Linus Torvalds authored
    Pull io_uring fixes from Jens Axboe:
    
     - A tweak to IOSQE_IO_LINK (also marked for stable) to allow links that
       don't sever if the result is < 0.
    
       This is mostly for linked timeouts, where if we ask for a pure
       timeout we always get -ETIME. This makes links useless for that case,
       hence allow a case where it works.
    
     - Five minor optimizations to fix and improve cases that regressed
       since v5.4.
    
     - An SQTHREAD locking fix.
    
     - A sendmsg/recvmsg iov assignment fix.
    
     - Net fix where read_iter/write_iter don't honor IOCB_NOWAIT, and
       subsequently ensuring that works for io_uring.
    
     - Fix a case where for an invalid opcode we might return -EBADF instead
       of -EINVAL, if the ->fd of that sqe was set to an invalid fd value.
    
    * tag 'io_uring-5.5-20191212' of git://git.kernel.dk/linux-block:
      io_uring: ensure we return -EINVAL on unknown opcode
      io_uring: add sockets to list of files that support non-blocking issue
      net: make socket read/write_iter() honor IOCB_NOWAIT
      io_uring: only hash regular files for async work execution
      io_uring: run next sqe inline if possible
      io_uring: don't dynamically allocate poll data
      io_uring: deferred send/recvmsg should assign iov
      io_uring: sqthread should grab ctx->uring_lock for submissions
      io-wq: briefly spin for new work after finishing work
      io-wq: remove worker->wait waitqueue
      io_uring: allow unbreakable links
    5bd831a4
socket.c 94.9 KB