Merge tag 'for-5.8/io_uring-2020-06-01' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jun 2020 22:42:50 +0000 (15:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jun 2020 22:42:50 +0000 (15:42 -0700)
Pull io_uring updates from Jens Axboe:
 "A relatively quiet round, mostly just fixes and code improvements. In
particular:

   - Make statx just use the generic statx handler, instead of open
     coding it. We don't need that anymore, as we always call it async
     safe (Bijan)

   - Enable closing of the ring itself. Also fixes O_PATH closure (me)

   - Properly name completion members (me)

   - Batch reap of dead file registrations (me)

   - Allow IORING_OP_POLL with double waitqueues (me)

   - Add tee(2) support (Pavel)

   - Remove double off read (Pavel)

   - Fix overflow cancellations (Pavel)

   - Improve CQ timeouts (Pavel)

   - Async defer drain fixes (Pavel)

   - Add support for enabling/disabling notifications on a registered
     eventfd (Stefano)

   - Remove dead state parameter (Xiaoguang)

   - Disable SQPOLL submit on dying ctx (Xiaoguang)

   - Various code cleanups"

* tag 'for-5.8/io_uring-2020-06-01' of git://git.kernel.dk/linux-block: (29 commits)
  io_uring: fix overflowed reqs cancellation
  io_uring: off timeouts based only on completions
  io_uring: move timeouts flushing to a helper
  statx: hide interfaces no longer used by io_uring
  io_uring: call statx directly
  statx: allow system call to be invoked from io_uring
  io_uring: add io_statx structure
  io_uring: get rid of manual punting in io_close
  io_uring: separate DRAIN flushing into a cold path
  io_uring: don't re-read sqe->off in timeout_prep()
  io_uring: simplify io_timeout locking
  io_uring: fix flush req->refs underflow
  io_uring: don't submit sqes when ctx->refs is dying
  io_uring: async task poll trigger cleanup
  io_uring: add tee(2) support
  splice: export do_tee()
  io_uring: don't repeat valid flag list
  io_uring: rename io_file_put()
  io_uring: remove req->needs_fixed_files
  io_uring: cleanup io_poll_remove_one() logic
  ...

1  2 
fs/internal.h
fs/io_uring.c
fs/splice.c
fs/stat.c

diff --cc fs/internal.h
Simple merge
diff --cc fs/io_uring.c
@@@ -616,11 -633,8 +633,10 @@@ struct io_kiocb 
  
        struct io_async_ctx             *io;
        int                             cflags;
-       bool                            needs_fixed_file;
        u8                              opcode;
  
 +      u16                             buf_index;
 +
        struct io_ring_ctx      *ctx;
        struct list_head        list;
        unsigned int            flags;
@@@ -926,11 -947,10 +949,11 @@@ static struct io_ring_ctx *io_ring_ctx_
                goto err;
  
        ctx->flags = p->flags;
 +      init_waitqueue_head(&ctx->sqo_wait);
        init_waitqueue_head(&ctx->cq_wait);
        INIT_LIST_HEAD(&ctx->cq_overflow_list);
-       init_completion(&ctx->completions[0]);
-       init_completion(&ctx->completions[1]);
+       init_completion(&ctx->ref_comp);
+       init_completion(&ctx->sq_thread_comp);
        idr_init(&ctx->io_buffer_idr);
        idr_init(&ctx->personality_idr);
        mutex_init(&ctx->uring_lock);
diff --cc fs/splice.c
Simple merge
diff --cc fs/stat.c
Simple merge