Subject: [GIT PULL] Block/io_uring fixes and changes for 5.5-rc1

From: Jens Axboe <[email-masked]>
Date: Thu, 5 Dec 2019 19:23:25 -0700

Hi Linus,

Wasn't expecting this to be so big, and if I was, I would have used
separate branches for this. Going forward I'll be doing separate
branches for the current tree, just like for the next kernel version
tree. In any case, this pull request contains:

- Series from Christoph that fixes an inherent race condition with zoned
  devices and revalidation.

- null_blk zone size fix (Damien)

- Fix for a regression in this merge window that caused busy spins by
  sending empty disk uevents (Eric)

- Fix for a regression in this merge window for bfq stats (Hou)

- Fix for io_uring creds allocation failure handling (me)

- io_uring -ERESTARTSYS send/recvmsg fix (me)

- Series that fixes the need for applications to retain state across
  async request punts for io_uring. This one is a bit larger than I
  would have hoped, but I think it's important we get this fixed for
  5.5.

- connect(2) improvement for io_uring, handling EINPROGRESS instead of
  having applications needing to poll for it (me)

- Have io_uring use a hash for poll requests instead of an rbtree. This
  turned out to work much better in practice, so I think we should make
  the switch now. For some workloads, even with a fair amount of
  cancellations, the insertion sort is just too expensive. (me)

- Various little io_uring fixes (me, Jackie, Pavel, LimingWu)

- Fix for brd unaligned IO, and a warning for the future (Ming)

- Fix for a bio integrity data leak (Justin)

- bvec_iter_advance() improvement (Pavel)

- Xen blkback page unmap fix (SeongJae)

The major items in here are all well tested, and on the liburing side we
continue to add regression and feature test cases. We're up to 50 topic
cases now, each with anywhere from 1 to more than 10 cases in each.

Please pull!

  git://git.kernel.dk/linux-block.git tags/for-linus-20191205

----------------------------------------------------------------
Christoph Hellwig (7):
      null_blk: cleanup null_gendisk_register
      block: remove the empty line at the end of blk-zoned.c
      block: simplify blkdev_nr_zones
      block: replace seq_zones_bitmap with conv_zones_bitmap
      block: allocate the zone bitmaps lazily
      block: don't handle bio based drivers in blk_revalidate_disk_zones
      block: set the zone size in blk_revalidate_disk_zones atomically

Damien Le Moal (1):
      null_blk: fix zone size paramter check

Eric Biggers (1):
      block: don't send uevent for empty disk when not invalidating

Hou Tao (1):
      bfq-iosched: Ensure bio->bi_blkg is valid before using it

Jackie Liu (2):
      io_uring: remove parameter ctx of io_submit_state_start
      io_uring: remove io_wq_current_is_worker

Jens Axboe (14):
      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
      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
      null_blk: remove unused variable warning on !CONFIG_BLK_DEV_ZONED
      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
      Merge branch 'io_uring-5.5' into for-linus

Justin Tee (1):
      block: fix memleak of bio integrity data

LimingWu (1):
      io_uring: fix a typo in a comment

Ming Lei (2):
      brd: remove max_hw_sectors queue limit
      brd: warn on un-aligned buffer

Pavel Begunkov (3):
      block: optimise bvec_iter_advance()
      io_uring: fix error handling in io_queue_link_head
      io_uring: hook all linked requests via link_list

SeongJae Park (1):
      xen/blkback: Avoid unmapping unmapped grant pages

 block/bfq-cgroup.c                  |   3 +
 block/bio-integrity.c               |   2 +-
 block/bio.c                         |   3 +
 block/blk-zoned.c                   | 149 ++++----
 block/blk.h                         |   4 +
 block/ioctl.c                       |   2 +-
 drivers/block/brd.c                 |   5 +-
 drivers/block/null_blk_main.c       |  40 ++-
 drivers/block/xen-blkback/blkback.c |   2 +
 drivers/md/dm-table.c               |  12 +-
 drivers/md/dm-zoned-target.c        |   2 +-
 drivers/scsi/sd_zbc.c               |   2 -
 fs/block_dev.c                      |   2 +-
 fs/io-wq.c                          |   2 +-
 fs/io-wq.h                          |  11 +-
 fs/io_uring.c                       | 694 +++++++++++++++++++++++++-----------
 include/linux/blkdev.h              |  24 +-
 include/linux/bvec.h                |  22 +-
 include/linux/socket.h              |  20 +-
 include/uapi/linux/io_uring.h       |   1 +
 net/socket.c                        |  76 ++--
 21 files changed, 672 insertions(+), 406 deletions(-)

-- 
Jens Axboe