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