io_uring support
Aleix Roca Nonell (1):
  io_uring: fix manual setup of iov_iter for fixed buffers
Arnd Bergmann (2):
  io_uring: fix big-endian compat signal mask handling
  io_uring: use __kernel_timespec in timeout ABI
Bart Van Assche (1):
  percpu-refcount: Introduce percpu_ref_resurrect()
Bijan Mottahedeh (13):
  io_uring: clear req->result always before issuing a read/write request
  io_uring: process requests completed with -EAGAIN on poll list
  io_uring: use proper references for fallback_req locking
  io_uring: don't use kiocb.private to store buf_index
  io_uring: add io_statx structure
  statx: allow system call to be invoked from io_uring
  io_uring: call statx directly
  statx: hide interfaces no longer used by io_uring
  io_uring: validate the full range of provided buffers for access
  io_uring: add wrappers for memory accounting
  io_uring: rename ctx->account_mem field
  io_uring: report pinned memory usage
  io_uring: separate reporting of ring pages from registered pages
Bob Liu (2):
  io_uring: clean up io_uring_cancel_files()
  io_uring: introduce req_need_defer()
Brian Gianforcaro (1):
  io_uring: fix stale comment and a few typos
Christoph Hellwig (2):
  fs: add an iopoll method to struct file_operations
  io_uring: add fsync support
Chucheng Luo (1):
  io_uring: fix missing 'return' in comment
Colin Ian King (3):
  io_uring: fix shadowed variable ret return code being not checked
  io_uring: remove redundant variable pointer nxt and io_wq_assign_next
    call
  io_uring: Fix sizeof() mismatch
Damien Le Moal (5):
  aio: Comment use of IOCB_FLAG_IOPRIO aio flag
  block: Introduce get_current_ioprio()
  aio: Fix fallback I/O priority value
  block: prevent merging of requests with different priorities
  block: Initialize BIO I/O priority early
Dan Carpenter (3):
  io-wq: remove extra space characters
  io_uring: remove unnecessary NULL checks
  io_uring: fix a use after free in io_async_task_func()
Daniel Xu (1):
  io_uring: increase IORING_MAX_ENTRIES to 32K
Daniele Albano (1):
  io_uring: always allow drain/link/hardlink/async sqe flags
Deepa Dinamani (5):
  signal: Add set_user_sigmask()
  signal: Add restore_user_sigmask()
  ppoll: use __kernel_timespec
  pselect6: use __kernel_timespec
  io_pgetevents: use __kernel_timespec
Denis Efremov (1):
  io_uring: use kvfree() in io_sqe_buffer_register()
Dmitrii Dolgov (1):
  io_uring: add set of tracing events
Dmitry Vyukov (1):
  io_uring: fix sq array offset calculation
Eric Biggers (1):
  io_uring: fix memory leak of UNIX domain socket inode
Eric W. Biederman (2):
  signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of
    force_sig
  signal: Allow cifs and drbd to receive their terminating signals
Eugene Syromiatnikov (1):
  io_uring: fix compat for IORING_REGISTER_FILES_UPDATE
Guoyu Huang (1):
  io_uring: Fix NULL pointer dereference in loop_rw_iter()
Hillf Danton (6):
  io-wq: remove unused busy list from io_sqe
  io-wq: add cond_resched() to worker thread
  io-uring: drop completion when removing file
  io-uring: drop 'free_pfile' in struct io_file_put
  io_uring: add missing finish_wait() in io_sq_thread()
  io-wq: fix use-after-free in io_wq_worker_running
Hristo Venev (1):
  io_uring: allocate the two rings together
Hrvoje Zeba (1):
  io_uring: remove superfluous check for sqe->off in io_accept()
Jackie Liu (17):
  io_uring: adjust smp_rmb inside io_cqring_events
  io_uring: use wait_event_interruptible for cq_wait conditional wait
  io_uring: fix io_sq_thread_stop running in front of io_sq_thread
  io_uring: fix KASAN use after free in io_sq_wq_submit_work
  io_uring: fix an issue when IOSQE_IO_LINK is inserted into defer list
  io_uring: fix wrong sequence setting logic
  io_uring: add support for link with drain
  io_uring: use kmemdup instead of kmalloc and memcpy
  io_uring: fix use-after-free of shadow_req
  io_uring: fix potential crash issue due to io_get_req failure
  io_uring: replace s->needs_lock with s->in_async
  io_uring: set -EINTR directly when a signal wakes up in io_cqring_wait
  io_uring: remove passed in 'ctx' function parameter ctx if possible
  io_uring: keep io_put_req only responsible for release and put req
  io_uring: separate the io_free_req and io_free_req_find_next interface
  io_uring: remove parameter ctx of io_submit_state_start
  io_uring: remove io_wq_current_is_worker
Jann Horn (2):
  io_uring: use kzalloc instead of kcalloc for single-element
    allocations
  io-wq: fix handling of NUMA node IDs
Jens Axboe (352):
  Add io_uring IO interface
  io_uring: support for IO polling
  fs: add fget_many() and fput_many()
  io_uring: use fget/fput_many() for file references
  io_uring: batch io_kiocb allocation
  io_uring: add support for pre-mapped user IO buffers
  net: split out functions related to registering inflight socket files
  io_uring: add file set registration
  io_uring: add submission polling
  io_uring: add io_kiocb ref count
  io_uring: add support for IORING_OP_POLL
  io_uring: allow workqueue item to handle multiple buffered requests
  io_uring: add a few test tools
  tools/io_uring: remove IOCQE_FLAG_CACHEHIT
  io_uring: use regular request ref counts
  io_uring: make io_read/write return an integer
  io_uring: add prepped flag
  io_uring: fix fget/fput handling
  io_uring: fix poll races
  io_uring: retry bulk slab allocs as single allocs
  io_uring: fix double free in case of fileset regitration failure
  io_uring: restrict IORING_SETUP_SQPOLL to root
  io_uring: park SQPOLL thread if it's percpu
  io_uring: only test SQPOLL cpu after we've verified it
  io_uring: drop io_file_put() 'file' argument
  io_uring: fix possible deadlock between io_uring_{enter,register}
  io_uring: fix CQ overflow condition
  io_uring: fail io_uring_register(2) on a dying io_uring instance
  io_uring: remove 'state' argument from io_{read,write} path
  io_uring: have submission side sqe errors post a cqe
  io_uring: drop req submit reference always in async punt
  fs: add sync_file_range() helper
  io_uring: add support for marking commands as draining
  io_uring: add support for IORING_OP_SYNC_FILE_RANGE
  io_uring: add support for eventfd notifications
  io_uring: fix failure to verify SQ_AFF cpu
  io_uring: remove 'ev_flags' argument
  tools/io_uring: fix Makefile for pthread library link
  tools/io_uring: sync with liburing
  io_uring: ensure req->file is cleared on allocation
  uio: make import_iovec()/compat_import_iovec() return bytes on success
  io_uring: punt short reads to async context
  io_uring: add support for sqe links
  io_uring: add support for sendmsg()
  io_uring: add support for recvmsg()
  io_uring: don't use iov_iter_advance() for fixed buffers
  io_uring: ensure ->list is initialized for poll commands
  io_uring: fix potential hang with polled IO
  io_uring: don't enter poll loop if we have CQEs pending
  io_uring: add need_resched() check in inner poll loop
  io_uring: expose single mmap capability
  io_uring: optimize submit_and_wait API
  io_uring: add io_queue_async_work() helper
  io_uring: limit parallelism of buffered writes
  io_uring: extend async work merging
  io_uring: make sqpoll wakeup possible with getevents
  io_uring: ensure poll commands clear ->sqe
  io_uring: use cond_resched() in sqthread
  io_uring: IORING_OP_TIMEOUT support
  io_uring: correctly handle non ->{read,write}_iter() file_operations
  io_uring: make CQ ring wakeups be more efficient
  io_uring: only flush workqueues on fileset removal
  io_uring: fix sequence logic for timeout requests
  io_uring: fix up O_NONBLOCK handling for sockets
  io_uring: revert "io_uring: optimize submit_and_wait API"
  io_uring: used cached copies of sq->dropped and cq->overflow
  io_uring: fix bad inflight accounting for SETUP_IOPOLL|SETUP_SQTHREAD
  io_uring: don't touch ctx in setup after ring fd install
  io_uring: run dependent links inline if possible
  io_uring: allow sparse fixed file sets
  io_uring: add support for IORING_REGISTER_FILES_UPDATE
  io_uring: allow application controlled CQ ring size
  io_uring: add support for absolute timeouts
  io_uring: add support for canceling timeout requests
  io-wq: small threadpool implementation for io_uring
  io_uring: replace workqueue usage with io-wq
  io_uring: io_uring: add support for async work inheriting files
  net: add __sys_accept4_file() helper
  io_uring: add support for IORING_OP_ACCEPT
  io_uring: protect fixed file indexing with array_index_nospec()
  io_uring: support for larger fixed file sets
  io_uring: fix race with canceling timeouts
  io_uring: io_wq_create() returns an error pointer, not NULL
  io_uring: ensure we clear io_kiocb->result before each issue
  io_uring: support for generic async request cancel
  io_uring: add completion trace event
  io-wq: use proper nesting IRQ disabling spinlocks for cancel
  io_uring: enable optimized link handling for IORING_OP_POLL_ADD
  io_uring: fixup a few spots where link failure isn't flagged
  io_uring: kill dead REQ_F_LINK_DONE flag
  io_uring: abstract out io_async_cancel_one() helper
  io_uring: add support for linked SQE timeouts
  io_uring: make io_cqring_events() take 'ctx' as argument
  io_uring: pass in io_kiocb to fill/add CQ handlers
  io_uring: add support for backlogged CQ ring
  io-wq: io_wqe_run_queue() doesn't need to use list_empty_careful()
  io-wq: add support for bounded vs unbunded work
  io_uring: properly mark async work as bounded vs unbounded
  io_uring: reduce/pack size of io_ring_ctx
  io_uring: fix error clear of ->file_table in io_sqe_files_register()
  io_uring: convert accept4() -ERESTARTSYS into -EINTR
  io_uring: provide fallback request for OOM situations
  io_uring: make ASYNC_CANCEL work with poll and timeout
  io_uring: flag SQPOLL busy condition to userspace
  io_uring: don't do flush cancel under inflight_lock
  io_uring: fix -ENOENT issue with linked timer with short timeout
  io_uring: make timeout sequence == 0 mean no sequence
  io_uring: use correct "is IO worker" helper
  io_uring: fix potential deadlock in io_poll_wake()
  io_uring: check for validity of ->rings in teardown
  io_wq: add get/put_work handlers to io_wq_create()
  io-wq: ensure we have a stable view of ->cur_work for cancellations
  io_uring: ensure registered buffer import returns the IO length
  io-wq: ensure free/busy list browsing see all items
  io-wq: remove now redundant struct io_wq_nulls_list
  io_uring: make POLL_ADD/POLL_REMOVE scale better
  io_uring: io_async_cancel() should pass in 'nxt' request pointer
  io_uring: cleanup return values from the queueing functions
  io_uring: make io_double_put_req() use normal completion path
  io_uring: make req->timeout be dynamically allocated
  io_uring: fix sequencing issues with linked timeouts
  io_uring: remove dead REQ_F_SEQ_PREV flag
  io_uring: correct poll cancel and linked timeout expiration completion
  io_uring: request cancellations should break links
  io-wq: wait for io_wq_create() to setup necessary workers
  io_uring: io_fail_links() should only consider first linked timeout
  io_uring: io_allocate_scq_urings() should return a sane state
  io_uring: allow finding next link independent of req reference count
  io_uring: close lookup gap for dependent next work
  io_uring: improve trace_io_uring_defer() trace point
  io_uring: only return -EBUSY for submit on non-flushed backlog
  net: add __sys_connect_file() helper
  io_uring: add support for IORING_OP_CONNECT
  io-wq: have io_wq_create() take a 'data' argument
  io_uring: async workers should inherit the user creds
  io-wq: shrink io_wq_work a bit
  io_uring: make poll->wait dynamically allocated
  io_uring: fix missing kmap() declaration on powerpc
  io_uring: use current task creds instead of allocating a new one
  io_uring: transform send/recvmsg() -ERESTARTSYS to -EINTR
  io_uring: add general async offload context
  io_uring: ensure async punted read/write requests copy iovec
  net: separate out the msghdr copy from ___sys_{send,recv}msg()
  net: disallow ancillary data for __sys_{send,recv}msg_file()
  io_uring: ensure async punted sendmsg/recvmsg requests copy data
  io_uring: ensure async punted connect requests copy data
  io_uring: mark us with IORING_FEAT_SUBMIT_STABLE
  io_uring: handle connect -EINPROGRESS like -EAGAIN
  io_uring: allow IO_SQE_* flags on IORING_OP_TIMEOUT
  io_uring: ensure deferred timeouts copy necessary data
  io-wq: clear node->next on list deletion
  io_uring: use hash table for poll command lookups
  io_uring: allow unbreakable links
  io-wq: remove worker->wait waitqueue
  io-wq: briefly spin for new work after finishing work
  io_uring: sqthread should grab ctx->uring_lock for submissions
  io_uring: deferred send/recvmsg should assign iov
  io_uring: don't dynamically allocate poll data
  io_uring: run next sqe inline if possible
  io_uring: only hash regular files for async work execution
  io_uring: add sockets to list of files that support non-blocking issue
  io_uring: ensure we return -EINVAL on unknown opcode
  io_uring: fix sporadic -EFAULT from IORING_OP_RECVMSG
  io-wq: re-add io_wq_current_is_worker()
  io_uring: fix pre-prepped issue with force_nonblock == true
  io_uring: remove 'sqe' parameter to the OP helpers that take it
  io_uring: any deferred command must have stable sqe data
  io_uring: make IORING_POLL_ADD and IORING_POLL_REMOVE deferrable
  io_uring: make IORING_OP_CANCEL_ASYNC deferrable
  io_uring: make IORING_OP_TIMEOUT_REMOVE deferrable
  io_uring: read opcode and user_data from SQE exactly once
  io_uring: warn about unhandled opcode
  io_uring: io_wq_submit_work() should not touch req->rw
  io_uring: use u64_to_user_ptr() consistently
  io_uring: add and use struct io_rw for read/writes
  io_uring: move all prep state for IORING_OP_CONNECT to prep handler
  io_uring: move all prep state for IORING_OP_{SEND,RECV}_MGS to prep
    handler
  io_uring: read 'count' for IORING_OP_TIMEOUT in prep handler
  io_uring: standardize the prep methods
  io_uring: pass in 'sqe' to the prep handlers
  io_uring: remove punt of short reads to async context
  io_uring: don't setup async context for read/write fixed
  io-wq: cancel work if we fail getting a mm reference
  io_uring: be consistent in assigning next work from handler
  io_uring: ensure workqueue offload grabs ring mutex for poll list
  io_uring: only allow submit from owning task
  Revert "io_uring: only allow submit from owning task"
  io_uring: don't cancel all work on process exit
  io_uring: add support for fallocate()
  fs: make build_open_flags() available internally
  io_uring: add support for IORING_OP_OPENAT
  io-wq: add support for uncancellable work
  io_uring: add support for IORING_OP_CLOSE
  io_uring: avoid ring quiesce for fixed file set unregister and update
  fs: make two stat prep helpers available
  io_uring: add support for IORING_OP_STATX
  io-wq: support concurrent non-blocking work
  io_uring: add IOSQE_ASYNC
  io_uring: remove two unnecessary function declarations
  io_uring: add lookup table for various opcode needs
  io_uring: split overflow state into SQ and CQ side
  io_uring: improve poll completion performance
  io_uring: add non-vectored read/write commands
  io_uring: allow use of offset == -1 to mean file position
  io_uring: add IORING_OP_FADVISE
  mm: make do_madvise() available internally
  io_uring: add IORING_OP_MADVISE
  io_uring: wrap multi-req freeing in struct req_batch
  io_uring: extend batch freeing to cover more cases
  io_uring: add support for IORING_SETUP_CLAMP
  io_uring: add support for send(2) and recv(2)
  io_uring: file set registration should use interruptible waits
  io_uring: change io_ring_ctx bool fields into bit fields
  io_uring: enable option to only trigger eventfd for async completions
  io_uring: remove 'fname' from io_open structure
  io_uring: add opcode to issue trace event
  io_uring: account fixed file references correctly in batch
  io_uring: add support for probing opcodes
  io_uring: file switch work needs to get flushed on exit
  io_uring: don't attempt to copy iovec for READ/WRITE
  io-wq: make the io_wq ref counted
  io_uring/io-wq: don't use static creds/mm assignments
  io_uring: allow registering credentials
  io_uring: support using a registered personality for commands
  io_uring: fix linked command file table usage
  eventpoll: abstract out epoll_ctl() handler
  eventpoll: support non-blocking do_epoll_ctl() calls
  io_uring: add support for epoll_ctl(2)
  io_uring: add ->show_fdinfo() for the io_uring file descriptor
  io_uring: prevent potential eventfd recursion on poll
  io_uring: use the proper helpers for io_send/recv
  io_uring: don't map read/write iovec potentially twice
  io_uring: fix sporadic double CQE entry for close
  io_uring: punt even fadvise() WILLNEED to async context
  io_uring: spin for sq thread to idle on shutdown
  io_uring: cleanup fixed file data table references
  io_uring: statx/openat/openat2 don't support fixed files
  io_uring: retry raw bdev writes if we hit -EOPNOTSUPP
  io-wq: add support for inheriting ->fs
  io_uring: grab ->fs as part of async preparation
  io_uring: allow AT_FDCWD for non-file openat/openat2/statx
  io-wq: make io_wqe_cancel_work() take a match handler
  io-wq: add io_wq_cancel_pid() to cancel based on a specific pid
  io_uring: cancel pending async work if task exits
  io_uring: retain sockaddr_storage across send/recvmsg async punt
  io-wq: don't call kXalloc_node() with non-online node
  io_uring: prune request from overflow list on flush
  io_uring: handle multiple personalities in link chains
  io_uring: fix personality idr leak
  io-wq: remove spin-for-work optimization
  io-wq: ensure work->task_pid is cleared on init
  io_uring: pick up link work on submit reference drop
  io_uring: import_single_range() returns 0/-ERROR
  io_uring: drop file set ref put/get on switch
  io_uring: fix 32-bit compatability with sendmsg/recvmsg
  io_uring: free fixed_file_data after RCU grace period
  io_uring: ensure RCU callback ordering with rcu_barrier()
  io_uring: make sure openat/openat2 honor rlimit nofile
  io_uring: make sure accept honor rlimit nofile
  io_uring: consider any io_read/write -EAGAIN as final
  io_uring: io_accept() should hold on to submit reference on retry
  io_uring: store io_kiocb in wait->private
  io_uring: add per-task callback handler
  io_uring: mark requests that we can do poll async in io_op_defs
  io_uring: use poll driven retry for files that support it
  io_uring: buffer registration infrastructure
  io_uring: add IORING_OP_PROVIDE_BUFFERS
  io_uring: support buffer selection for OP_READ and OP_RECV
  io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_READV
  net: abstract out normal and compat msghdr import
  io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_RECVMSG
  io_uring: provide means of removing buffers
  io_uring: add end-of-bits marker and build time verify it
  io_uring: dual license io_uring.h uapi header
  io_uring: fix truncated async read/readv and write/writev retry
  io_uring: honor original task RLIMIT_FSIZE
  io_uring: retry poll if we got woken with non-matching mask
  io_uring: grab task reference for poll requests
  io_uring: use io-wq manager as backup task if task is exiting
  io_uring: remove bogus RLIMIT_NOFILE check in file registration
  io_uring: ensure openat sets O_LARGEFILE if needed
  io_uring: punt final io_ring_ctx wait-and-free to workqueue
  io_uring: correct O_NONBLOCK check for splice punt
  io_uring: check for need to re-wait in polled async handling
  io_uring: io_async_task_func() should check and honor cancelation
  io_uring: only post events in io_poll_remove_all() if we completed
    some
  io_uring: statx must grab the file table for valid fd
  io_uring: enable poll retry for any file with ->read_iter /
    ->write_iter
  io_uring: only force async punt if poll based retry can't handle it
  io_uring: don't use 'fd' for openat/openat2/statx
  io_uring: polled fixed file must go through free iteration
  io_uring: initialize ctx->sqo_wait earlier
  io_uring: remove dead check in io_splice()
  io_uring: cancel work if task_work_add() fails
  io_uring: don't add non-IO requests to iopoll pending list
  io_uring: remove 'fd is io_uring' from close path
  io_uring: name sq thread and ref completions
  io_uring: batch reap of dead file registrations
  io_uring: allow POLL_ADD with double poll_wait() users
  io_uring: file registration list and lock optimization
  io_uring: cleanup io_poll_remove_one() logic
  io_uring: async task poll trigger cleanup
  io_uring: disallow close of ring itself
  io_uring: re-set iov base/len for buffer select retry
  io_uring: allow O_NONBLOCK async retry
  io_uring: acquire 'mm' for task_work for SQPOLL
  io_uring: reap poll completions while waiting for refs to drop on exit
  io_uring: use signal based task_work running
  io_uring: fix regression with always ignoring signals in
    io_cqring_wait()
  io_uring: account user memory freed when exit has been queued
  io_uring: ensure double poll additions work with both request types
  io_uring: use TWA_SIGNAL for task_work uncondtionally
  io_uring: hold 'ctx' reference around task_work queue + execute
  io_uring: clear req->result on IOPOLL re-issue
  io_uring: fix IOPOLL -EAGAIN retries
  io_uring: always delete double poll wait entry on match
  io_uring: fix potential ABBA deadlock in ->show_fdinfo()
  io_uring: use type appropriate io_kiocb handler for double poll
  io_uring: round-up cq size before comparing with rounded sq size
  io_uring: remove dead 'ctx' argument and move forward declaration
  io_uring: don't touch 'ctx' after installing file descriptor
  io_uring: account locked memory before potential error case
  io_uring: fix imbalanced sqo_mm accounting
  io_uring: stash ctx task reference for SQPOLL
  io_uring: ensure consistent view of original task ->mm from SQPOLL
  io_uring: allow non-fixed files with SQPOLL
  io_uring: fail poll arm on queue proc failure
  io_uring: sanitize double poll handling
  io_uring: ensure open/openat2 name is cleaned on cancelation
  io_uring: fix error path cleanup in io_sqe_files_register()
  io_uring: make ctx cancel on exit targeted to actual ctx
  io_uring: fix SQPOLL IORING_OP_CLOSE cancelation state
  io_uring: ignore double poll add on the same waitqueue head
  io_uring: clean up io_kill_linked_timeout() locking
  io_uring: add missing REQ_F_COMP_LOCKED for nested requests
  io_uring: provide generic io_req_complete() helper
  io_uring: add 'io_comp_state' to struct io_submit_state
  io_uring: pass down completion state on the issue side
  io_uring: pass in completion state to appropriate issue side handlers
  io_uring: enable READ/WRITE to use deferred completions
  io_uring: use task_work for links if possible
  io_uring: abstract out task work running
  io_uring: use new io_req_task_work_add() helper throughout
  io_uring: only call kfree() for a non-zero pointer
  io_uring: get rid of __req_need_defer()
  io_uring: enable lookup of links holding inflight files
  io_uring: fix recursive completion locking on oveflow flush
  io_uring: always plug for any number of IOs
  io_uring: find and cancel head link async work on files exit
  io_uring: don't use poll handler if file can't be nonblocking
    read/written
  io_uring: don't recurse on tsk->sighand->siglock with signalfd
  io_uring: defer file table grabbing request cleanup for locked
    requests
Jiufei Xue (5):
  io_uring: check file O_NONBLOCK state for accept
  io_uring: change the poll type to be 32-bits
  io_uring: use EPOLLEXCLUSIVE flag to aoid thundering herd type
    behavior
  io_uring: fix removing the wrong file in __io_sqe_files_update()
  io_uring: set table->files[i] to NULL when io_sqe_file_register failed
Joseph Qi (1):
  io_uring: fix shift-out-of-bounds when round up cq size
LimingWu (1):
  io_uring: fix a typo in a comment
Lukas Bulwahn (1):
  io_uring: make spdxcheck.py happy
Marcelo Diop-Gonzalez (1):
  io_uring: flush timeouts that should already have expired
Mark Rutland (3):
  io_uring: fix SQPOLL cpu validation
  io_uring: free allocated io_memory once
  io_uring: avoid page allocation warnings
Nathan Chancellor (1):
  io_uring: Ensure mask is initialized in io_arm_poll_handler
Oleg Nesterov (6):
  signal: remove the wrong signal_pending() check in
    restore_user_sigmask()
  signal: simplify set_user_sigmask/restore_user_sigmask
  select: change do_poll() to return -ERESTARTNOHAND rather than -EINTR
  select: shift restore_saved_sigmask_unless() into
    poll_select_copy_remaining()
  task_work_run: don't take ->pi_lock unconditionally
  task_work: teach task_work_add() to do signal_wake_up()
Pavel Begunkov (247):
  io_uring: Fix __io_uring_register() false success
  io_uring: fix reversed nonblock flag for link submission
  io_uring: remove wait loop spurious wakeups
  io_uring: Fix corrupted user_data
  io_uring: Fix broken links with offloading
  io_uring: Fix race for sqes with userspace
  io_uring: Fix leaked shadow_req
  io_uring: remove index from sqe_submit
  io_uring: Fix mm_fault with READ/WRITE_FIXED
  io_uring: Merge io_submit_sqes and io_ring_submit
  io_uring: io_queue_link*() right after submit
  io_uring: allocate io_kiocb upfront
  io_uring: Use submit info inlined into req
  io_uring: use inlined struct sqe_submit
  io_uring: Fix getting file for timeout
  io_uring: Fix getting file for non-fd opcodes
  io_uring: break links for failed defer
  io_uring: remove redundant check
  io_uring: Fix leaking linked timeouts
  io_uring: Always REQ_F_FREE_SQE for allocated sqe
  io_uring: drain next sqe instead of shadowing
  io_uring: rename __io_submit_sqe()
  io_uring: add likely/unlikely in io_get_sqring()
  io_uring: remove io_free_req_find_next()
  io_uring: pass only !null to io_req_find_next()
  io_uring: simplify io_req_link_next()
  io_uring: only !null ptr to io_issue_sqe()
  io_uring: fix dead-hung for non-iter fixed rw
  io_uring: store timeout's sqe->off in proper place
  io_uring: inline struct sqe_submit
  io_uring: cleanup io_import_fixed()
  io_uring: fix error handling in io_queue_link_head
  io_uring: hook all linked requests via link_list
  io_uring: make HARDLINK imply LINK
  io_uring: don't wait when under-submitting
  io_uring: rename prev to head
  io_uring: move *queue_link_head() from common path
  pcpu_ref: add percpu_ref_tryget_many()
  io_uring: batch getting pcpu references
  io_uring: clamp to_submit in io_submit_sqes()
  io_uring: optimise head checks in io_get_sqring()
  io_uring: optimise commit_sqring() for common case
  io_uring: remove extra io_wq_current_is_worker()
  io_uring: optimise use of ctx->drain_next
  io_uring: remove extra check in __io_commit_cqring
  io_uring: hide uring_fd in ctx
  io_uring: remove REQ_F_IO_DRAINED
  io_uring: optimise sqe-to-req flags translation
  io_uring: use labeled array init in io_op_defs
  io_uring: prep req when do IOSQE_ASYNC
  io_uring: honor IOSQE_ASYNC for linked reqs
  io_uring: add comment for drain_next
  io_uring: fix refcounting with batched allocations at OOM
  io-wq: allow grabbing existing io-wq
  io_uring: add io-wq workqueue sharing
  io_uring: remove extra ->file check
  io_uring: iterate req cache backwards
  io_uring: put the flag changing code in the same spot
  io_uring: get rid of delayed mm check
  io_uring: fix deferred req iovec leak
  io_uring: remove unused struct io_async_open
  io_uring: fix iovec leaks
  io_uring: add cleanup for openat()/statx()
  io_uring: fix async close() with f_op->flush()
  io_uring: fix double prep iovec leak
  io_uring: fix openat/statx's filename leak
  io_uring: add missing io_req_cancelled()
  io_uring: fix use-after-free by io_cleanup_req()
  io-wq: fix IO_WQ_WORK_NO_CANCEL cancellation
  io-wq: remove io_wq_flush and IO_WQ_WORK_INTERNAL
  io_uring: fix lockup with timeouts
  io_uring: NULL-deref for IOSQE_{ASYNC,DRAIN}
  io_uring: don't call work.func from sync ctx
  io_uring: don't do full *prep_worker() from io-wq
  io_uring: remove req->in_async
  splice: make do_splice public
  io_uring: add interface for getting files
  io_uring: add splice(2) support
  io_uring: clean io_poll_complete
  io_uring: extract kmsg copy helper
  io-wq: remove unused IO_WQ_WORK_HAS_MM
  io_uring: remove IO_WQ_WORK_CB
  io-wq: use BIT for ulong hash
  io_uring: remove extra nxt check after punt
  io_uring: remove io_prep_next_work()
  io_uring: clean up io_close
  io_uring: make submission ref putting consistent
  io_uring: remove @nxt from handlers
  io_uring: get next work with submission ref drop
  io-wq: shuffle io_worker_handle_work() code
  io-wq: optimise locking in io_worker_handle_work()
  io-wq: optimise out *next_work() double lock
  io_uring/io-wq: forward submission ref to async
  io-wq: remove duplicated cancel code
  io-wq: don't resched if there is no work
  io-wq: split hashing and enqueueing
  io-wq: hash dependent work
  io-wq: close cancel gap for hashed linked work
  io_uring: Fix ->data corruption on re-enqueue
  io-wq: handle hashed writes in chains
  io_uring: fix ctx refcounting in io_submit_sqes()
  io_uring: simplify io_get_sqring
  io_uring: alloc req only after getting sqe
  io_uring: remove req init from io_get_req()
  io_uring: don't read user-shared sqe flags twice
  io_uring: fix fs cleanup on cqe overflow
  io_uring: remove obsolete @mm_fault
  io_uring: track mm through current->mm
  io_uring: early submission req fail code
  io_uring: keep all sqe->flags in req->flags
  io_uring: move all request init code in one place
  io_uring: fix cached_sq_head in io_timeout()
  io_uring: kill already cached timeout.seq_offset
  io_uring: don't count rqs failed after current one
  io_uring: fix extra put in sync_file_range()
  io_uring: check non-sync defer_list carefully
  io_uring: punt splice async because of inode mutex
  splice: move f_mode checks to do_{splice,tee}()
  io_uring: fix zero len do_splice()
  io_uring: don't prepare DRAIN reqs twice
  io_uring: fix FORCE_ASYNC req preparation
  io_uring: remove req->needs_fixed_files
  io_uring: rename io_file_put()
  io_uring: don't repeat valid flag list
  splice: export do_tee()
  io_uring: add tee(2) support
  io_uring: fix flush req->refs underflow
  io_uring: simplify io_timeout locking
  io_uring: don't re-read sqe->off in timeout_prep()
  io_uring: separate DRAIN flushing into a cold path
  io_uring: get rid of manual punting in io_close
  io_uring: move timeouts flushing to a helper
  io_uring: off timeouts based only on completions
  io_uring: fix overflowed reqs cancellation
  io_uring: fix {SQ,IO}POLL with unsupported opcodes
  io_uring: move send/recv IOPOLL check into prep
  io_uring: don't derive close state from ->func
  io_uring: remove custom ->func handlers
  io_uring: don't arm a timeout through work.func
  io_wq: add per-wq work handler instead of per work
  io_uring: fix lazy work init
  io-wq: reorder cancellation pending -> running
  io-wq: add an option to cancel all matched reqs
  io_uring: cancel all task's requests on exit
  io_uring: batch cancel in io_uring_cancel_files()
  io_uring: lazy get task
  io_uring: cancel by ->task not pid
  io-wq: compact io-wq flags numbers
  io-wq: return next work from ->do_work() directly
  io_uring: fix hanging iopoll in case of -EAGAIN
  io_uring: fix current->mm NULL dereference on exit
  io_uring: fix missing msg_name assignment
  io_uring: fix not initialised work->flags
  io_uring: fix recvmsg memory leak with buffer selection
  io_uring: missed req_init_async() for IOSQE_ASYNC
  io_uring: fix ->work corruption with poll_add
  io_uring: fix lockup in io_fail_links()
  io_uring: rename sr->msg into umsg
  io_uring: use more specific type in rcv/snd msg cp
  io_uring: extract io_sendmsg_copy_hdr()
  io_uring: simplify io_req_map_rw()
  io_uring: add a helper for async rw iovec prep
  io_uring: fix potential use after free on fallback request free
  io_uring: fix stopping iopoll'ing too early
  io_uring: briefly loose locks while reaping events
  io_uring: partially inline io_iopoll_getevents()
  io_uring: fix racy overflow count reporting
  io-wq: fix hang after cancelling pending hashed work
  io_uring: clean file_data access in files_register
  io_uring: refactor *files_register()'s error paths
  io_uring: keep a pointer ref_node in file_data
  io_uring: fix double poll mask init
  io_uring: fix recvmsg setup with compat buf-select
  io_uring: fix NULL-mm for linked reqs
  io_uring: fix missing ->mm on exit
  io_uring: return locked and pinned page accounting
  io_uring: don't burn CPU for iopoll on exit
  io_uring: don't miscount pinned memory
  io_uring: fix provide_buffers sign extension
  io_uring: fix stalled deferred requests
  io_uring: kill REQ_F_LINK_NEXT
  io_uring: deduplicate freeing linked timeouts
  io_uring: fix refs underflow in io_iopoll_queue()
  io_uring: remove inflight batching in free_many()
  io_uring: dismantle req early and remove need_iter
  io_uring: batch-free linked requests as well
  io_uring: cosmetic changes for batch free
  io_uring: clean up req->result setting by rw
  io_uring: do task_work_run() during iopoll
  io_uring: fix NULL mm in io_poll_task_func()
  io_uring: simplify io_async_task_func()
  io_uring: fix req->work corruption
  io_uring: fix punting req w/o grabbed env
  io_uring: fix feeding io-wq with uninit reqs
  io_uring: don't mark link's head for_async
  io_uring: fix missing io_grab_files()
  io_uring: replace find_next() out param with ret
  io_uring: kill REQ_F_TIMEOUT
  io_uring: kill REQ_F_TIMEOUT_NOSEQ
  io_uring: optimise io_req_find_next() fast check
  io_uring: remove setting REQ_F_MUST_PUNT in rw
  io_uring: remove REQ_F_MUST_PUNT
  io_uring: set @poll->file after @poll init
  io_uring: don't pass def into io_req_work_grab_env
  io_uring: do init work in grab_env()
  io_uring: factor out grab_env() from defer_prep()
  io_uring: do grab_env() just before punting
  io_uring: fix mis-refcounting linked timeouts
  io_uring: keep queue_sqe()'s fail path separately
  io_uring: fix lost cqe->flags
  io_uring: don't delay iopoll'ed req completion
  io_uring: remove nr_events arg from iopoll_check()
  io_uring: share completion list w/ per-op space
  io_uring: rename ctx->poll into ctx->iopoll
  io_uring: use inflight_entry list for iopoll'ing
  io_uring: use completion list for CQ overflow
  io_uring: add req->timeout.list
  io_uring: remove init for unused list
  io_uring: use non-intrusive list for defer
  io_uring: remove sequence from io_kiocb
  io_uring: place cflags into completion data
  io_uring: fix cancel of deferred reqs with ->files
  io_uring: fix linked deferred ->files cancellation
  io_uring: fix racy IOPOLL completions
  io_uring: inline io_req_work_grab_env()
  io_uring: alloc ->io in io_req_defer_prep()
  io_uring/io-wq: move RLIMIT_FSIZE to io-wq
  io_uring: mark ->work uninitialised after cleanup
  io_uring: follow **iovec idiom in io_import_iovec
  io_uring: de-unionise io_kiocb
  io_uring: consolidate *_check_overflow accounting
  io_uring: get rid of atomic FAA for cq_timeouts
  io-wq: update hash bits
  io_uring: indent left {send,recv}[msg]()
  io_uring: remove extra checks in send/recv
  io_uring: don't forget cflags in io_recv()
  io_uring: free selected-bufs if error'ed
  io_uring: move BUFFER_SELECT check into *recv[msg]
  io_uring: simplify file ref tracking in submission state
  io_uring: extract io_put_kbuf() helper
  io_uring: don't open-code recv kbuf managment
  io_uring: don't do opcode prep twice
  io_uring: deduplicate io_grab_files() calls
  io_uring: fix missing io_queue_linked_timeout()
  tasks: add put_task_struct_many()
  io_uring: batch put_task_struct()
  io_uring: fix racy req->flags modification
Randy Dunlap (2):
  io_uring: fix 1-bit bitfields to be unsigned
  io_uring: fix function args for !CONFIG_NET
Roman Gushchin (1):
  percpu_ref: introduce PERCPU_REF_ALLOW_REINIT flag
Roman Penyaev (3):
  io_uring: offload write to async worker in case of -EAGAIN
  io_uring: fix infinite wait in khread_park() on io_finish_async()
  io_uring: add mapping support for NOMMU archs
Shenghui Wang (1):
  io_uring: use cpu_online() to check p->sq_thread_cpu instead of
    cpu_possible()
Stefan Bühler (13):
  io_uring: fix race condition reading SQ entries
  io_uring: fix race condition when sq threads goes sleeping
  io_uring: fix poll full SQ detection
  io_uring: fix handling SQEs requesting NOWAIT
  io_uring: fix notes on barriers
  io_uring: remove unnecessary barrier before wq_has_sleeper
  io_uring: remove unnecessary barrier before reading cq head
  io_uring: remove unnecessary barrier after updating SQ head
  io_uring: remove unnecessary barrier before reading SQ tail
  io_uring: remove unnecessary barrier after incrementing dropped
    counter
  io_uring: remove unnecessary barrier after unsetting
    IORING_SQ_NEED_WAKEUP
  req->error only used for iopoll
  io_uring: fix race condition reading SQE data
Stefan Metzmacher (1):
  io_uring: add BUILD_BUG_ON() to assert the layout of struct
    io_uring_sqe
Stefano Garzarella (4):
  io_uring: flush overflowed CQ events in the io_uring_poll()
  io_uring: prevent sq_thread from spinning when it should stop
  io_uring: add 'cq_flags' field for the CQ ring
  io_uring: add IORING_CQ_EVENTFD_DISABLED to the CQ ring flags
Steve French (1):
  cifs: fix rmmod regression in cifs.ko caused by force_sig changes
Thomas Gleixner (2):
  sched: Remove stale PF_MUTEX_TESTER bit
  sched/core, workqueues: Distangle worker accounting from rq lock
Tobias Klauser (1):
  io_uring: define and set show_fdinfo only if procfs is enabled
Xiaoguang Wang (24):
  io_uring: fix __io_iopoll_check deadlock in io_sq_thread
  io_uring: fix poll_list race for SETUP_IOPOLL|SETUP_SQPOLL
  io_uring: io_uring_enter(2) don't poll while SETUP_IOPOLL|SETUP_SQPOLL
    enabled
  io_uring: cleanup io_alloc_async_ctx()
  io_uring: refactor file register/unregister/update handling
  io_uring: initialize fixed_file_data lock
  io_uring: do not always copy iovec in io_req_map_rw()
  io_uring: restore req->work when canceling poll request
  io_uring: only restore req->work for req that needs do completion
  io_uring: use cond_resched() in io_ring_ctx_wait_and_kill()
  io_uring: fix mismatched finish_wait() calls in
    io_uring_cancel_files()
  io_uring: handle -EFAULT properly in io_uring_setup()
  io_uring: reset -EBUSY error when io sq thread is waken up
  io_uring: remove obsolete 'state' parameter
  io_uring: don't submit sqes when ctx->refs is dying
  io_uring: avoid whole io_wq_work copy for requests completed inline
  io_uring: avoid unnecessary io_wq_work copy for fast poll feature
  io_uring: fix io_kiocb.flags modification race in IOPOLL mode
  io_uring: don't fail links for EAGAIN error in IOPOLL mode
  io_uring: add memory barrier to synchronize io_kiocb's result and
    iopoll_completed
  io_uring: fix possible race condition against REQ_F_NEED_CLEANUP
  io_uring: export cq overflow status to userspace
  io_uring: clear IORING_SQ_NEED_WAKEUP after executing task works
  io_uring: always let io_iopoll_complete() complete polled io
Xiaoming Ni (1):
  io_uring: remove duplicate semicolon at the end of line
Xuan Zhuo (1):
  io_uring: fix io_sq_thread no schedule when busy
Yang Yingliang (2):
  io_uring: fix memleak in __io_sqe_files_update()
  io_uring: fix memleak in io_sqe_files_register()
YueHaibing (3):
  io-wq: use kfree_rcu() to simplify the code
  io_uring: Remove unnecessary null check
  io_uring: Fix unused function warnings
Zhengyuan Liu (4):
  io_uring: fix the sequence comparison in io_sequence_defer
  io_uring: fix counter inc/dec mismatch in async_list
  io_uring: add a memory barrier before atomic_read
  io_uring: track io length in async_list based on bytes
yangerkun (9):
  fs: fix kabi change since add iopoll
  io_uring: compare cached_cq_tail with cq.head in_io_uring_poll
  io_uring: consider the overflow of sequence for timeout req
  io_uring: fix logic error in io_timeout
  fs: introduce __close_fd_get_file to support IORING_OP_CLOSE for
    io_uring
  fs: make filename_lookup available externally
  x86: fix kabi with io_uring interface
  arm64: fix kabi with io_uring interface
  io_uring: add IORING_OP_OPENAT2 for compatablity
zhangyi (F) (2):
  io_uring : correct timeout req sequence when waiting timeout
  io_uring: correct timeout req sequence when inserting a new entry
 Documentation/filesystems/vfs.txt        |    3 +
 arch/arm64/include/asm/syscall_wrapper.h |    5 +
 arch/arm64/kernel/syscall.c              |    9 +-
 arch/x86/entry/common.c                  |    7 +
 arch/x86/include/asm/syscall_wrapper.h   |    3 +
 block/blk-core.c                         |   12 +-
 block/blk-merge.c                        |    7 +-
 drivers/block/drbd/drbd_main.c           |    2 +
 fs/Kconfig                               |    3 +
 fs/Makefile                              |    2 +
 fs/aio.c                                 |  157 +-
 fs/cifs/connect.c                        |    3 +-
 fs/eventpoll.c                           |  143 +-
 fs/file.c                                |   53 +-
 fs/file_table.c                          |    9 +-
 fs/internal.h                            |    9 +
 fs/io-wq.c                               | 1158 +++
 fs/io-wq.h                               |  152 +
 fs/io_uring.c                            | 8811 ++++++++++++++++++++++
 fs/namei.c                               |    4 +-
 fs/open.c                                |    2 +-
 fs/select.c                              |  376 +-
 fs/splice.c                              |   62 +-
 fs/stat.c                                |   65 +-
 fs/sync.c                                |  141 +-
 include/linux/compat.h                   |   19 +
 include/linux/eventpoll.h                |    9 +
 include/linux/fdtable.h                  |    1 +
 include/linux/file.h                     |    3 +
 include/linux/fs.h                       |   22 +-
 include/linux/ioprio.h                   |   13 +
 include/linux/mm.h                       |    1 +
 include/linux/percpu-refcount.h          |   36 +-
 include/linux/sched.h                    |    2 +-
 include/linux/sched/jobctl.h             |    4 +-
 include/linux/sched/signal.h             |   12 +-
 include/linux/sched/task.h               |    6 +
 include/linux/sched/user.h               |    2 +-
 include/linux/signal.h                   |   15 +-
 include/linux/socket.h                   |   25 +
 include/linux/splice.h                   |    6 +
 include/linux/syscalls.h                 |   28 +-
 include/linux/task_work.h                |    5 +-
 include/linux/uio.h                      |    4 +-
 include/net/af_unix.h                    |    1 +
 include/net/compat.h                     |    3 +
 include/trace/events/io_uring.h          |  495 ++
 include/uapi/linux/aio_abi.h             |    2 +
 include/uapi/linux/io_uring.h            |  294 +
 init/Kconfig                             |   10 +
 kernel/sched/core.c                      |   96 +-
 kernel/signal.c                          |   63 +-
 kernel/sys_ni.c                          |    3 +
 kernel/task_work.c                       |   34 +-
 kernel/workqueue.c                       |   54 +-
 kernel/workqueue_internal.h              |    5 +-
 lib/iov_iter.c                           |   15 +-
 lib/percpu-refcount.c                    |   28 +-
 mm/madvise.c                             |    7 +-
 net/Makefile                             |    2 +-
 net/compat.c                             |   31 +-
 net/socket.c                             |  298 +-
 net/unix/Kconfig                         |    5 +
 net/unix/Makefile                        |    2 +
 net/unix/af_unix.c                       |   63 +-
 net/unix/garbage.c                       |   68 +-
 net/unix/scm.c                           |  151 +
 net/unix/scm.h                           |   10 +
 tools/io_uring/Makefile                  |   18 +
 tools/io_uring/README                    |   29 +
 tools/io_uring/barrier.h                 |   16 +
 tools/io_uring/io_uring-bench.c          |  592 ++
 tools/io_uring/io_uring-cp.c             |  260 +
 tools/io_uring/liburing.h                |  187 +
 tools/io_uring/queue.c                   |  156 +
 tools/io_uring/setup.c                   |  107 +
 tools/io_uring/syscall.c                 |   52 +
 77 files changed, 13739 insertions(+), 829 deletions(-)
 create mode 100644 fs/io-wq.c
 create mode 100644 fs/io-wq.h
 create mode 100644 fs/io_uring.c
 create mode 100644 include/trace/events/io_uring.h
 create mode 100644 include/uapi/linux/io_uring.h
 create mode 100644 net/unix/scm.c
 create mode 100644 net/unix/scm.h
 create mode 100644 tools/io_uring/Makefile
 create mode 100644 tools/io_uring/README
 create mode 100644 tools/io_uring/barrier.h
 create mode 100644 tools/io_uring/io_uring-bench.c
 create mode 100644 tools/io_uring/io_uring-cp.c
 create mode 100644 tools/io_uring/liburing.h
 create mode 100644 tools/io_uring/queue.c
 create mode 100644 tools/io_uring/setup.c
 create mode 100644 tools/io_uring/syscall.c
-- 
2.25.1