Hi Linus,
This is the main block pull request for 5.1. Not a huge amount of
changes in this round, the biggest one is that we finally have Mings
multi-page bvec support merged. Apart from that, this pull request
contains:
- Small series that avoids quiescing the queue for sysfs changes that
match what we currently have (Aleksei)
- Series of bcache fixes (via Coly)
- Series of lightnvm fixes (via Mathias)
- NVMe pull request from Christoph. Nothing major, just SPDX/license
cleanups, RR mp policy (Hannes), and little fixes (Bart, Chaitanya).
- BFQ series (Paolo)
- Save blk-mq cpu -> hw queue mapping, removing a pointer indirection
for the fast path (Jianchao)
- fops->iopoll() added for async IO polling, this is a feature that the
upcoming io_uring interface will use (Christoph, me)
- Partition scan loop fixes (Dongli)
- mtip32xx conversion from managed resource API (Christoph)
- cdrom registration race fix (Guenter)
- MD pull from Song, two minor fixes.
- Various documentation fixes (Marcos)
- Multi-page bvec feature. This brings a lot of nice improvements with
it, like more efficient splitting, larger IOs can be supported without
growing the bvec table size, and so on. (Ming)
- Various little fixes to core and drivers.
Note that this will throw a merge conflict, due to the late revert of
the gfs2 commit ""gfs2: read journal in large chunks to locate the
head". The resolution is trivial, since it's just deleting the code.
Please pull!
git://git.kernel.dk/linux-block.git tags/for-5.1/block-20190302
----------------------------------------------------------------
Aleksei Zakharov (3):
block: avoid setting nr_requests to current value
block: avoid setting wbt_lat_usec to current value
block: avoid setting none scheduler if it's already none
Andy Shevchenko (2):
lightnvm: Use u64 instead of __le64 for CPU visible side
lightnvm: pblk: Switch to use new generic UUID API
Bart Van Assche (6):
nvmet: fix indentation
nvme-fabrics: document the poll function argument
nvme-pci: check kstrtoint() return value in queue_count_set()
nvme: unexport nvme_delete_ctrl_sync()
nvme: introduce a helper function for controller deletion
nvme: avoid that deleting a controller triggers a circular locking
complaint
Carlos Maiolino (1):
fs: fix guard_bio_eod to check for real EOD errors
Chaitanya Kulkarni (2):
nvme: add support for the Write Zeroes command
nvme-rdma: use nr_phys_segments when map rq to sgl
Christoph Hellwig (19):
mtip32xx: ѕtop abusing the managed resource APIs
btrfs: look at bi_size for repair decisions
nvme_ioctl.h: remove duplicate GPL boilerplate
nvme-tcp.h: fix SPDX header
nvme-fabrics: convert to SPDX identifiers
nvme-fc: convert to SPDX identifiers
nvme-rdma: convert to SPDX identifiers
nvme-lightnvm: convert to SPDX identifiers
nvme-pci: convert to SPDX identifiers
nvme: convert to SPDX identifiers
nvmet-fc: convert to SPDX identifiers
nvmet-fcloop: convert to SPDX identifiers
nvme-loop: convert to SPDX identifiers
nvmet-rdma: convert to SPDX identifiers
nvmet: convert to SPDX identifiers
fs: add an iopoll method to struct file_operations
block: wire up block device iopoll method
iomap: wire up the iopoll method
block: optimize bvec iteration in bvec_iter_advance
Colin Ian King (1):
bcache: fix indentation issue, remove tabs on a hunk of code
Coly Li (16):
bcache: not use hard coded memset size in bch_cache_accounting_clear()
bcache: export backing_dev_name via sysfs
bcache: export backing_dev_uuid via sysfs
bcache: improve sysfs_strtoul_clamp()
bcache: fix input integer overflow of congested threshold
bcache: fix input overflow to sequential_cutoff
bcache: add sysfs_strtoul_bool() for setting bit-field variables
bcache: use sysfs_strtoul_bool() to set bit-field variables
bcache: fix input overflow to writeback_delay
bcache: fix potential div-zero error of writeback_rate_i_term_inverse
bcache: fix potential div-zero error of writeback_rate_p_term_inverse
bcache: fix input overflow to writeback_rate_minimum
bcache: fix input overflow to journal_delay_ms
bcache: fix input overflow to cache set io_error_limit
bcache: fix input overflow to cache set sysfs file io_error_halflife
bcache: use (REQ_META|REQ_PRIO) to indicate bio for metadata
Daniel Axtens (1):
bcache: never writeback a discard operation
Dongli Zhang (3):
loop: do not print warn message if partition scan is successful
loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()
blk-mq: use HCTX_TYPE_DEFAULT but not 0 to index blk_mq_tag_set->map
Guenter Roeck (1):
cdrom: Fix race condition in cdrom_sysctl_register
Gustavo A. R. Silva (1):
md-linear: use struct_size() in kzalloc()
Hannes Reinecke (2):
nvme-multipath: round-robin I/O policy
nvme: return error from nvme_alloc_ns()
Hans Holmberg (3):
lightnvm: pblk: stop taking the free lock in in pblk_lines_free
lightnvm: pblk: use vfree to free metadata on error path
lightnvm: pblk: extend line wp balance check
Heiner Litz (1):
lightnvm: pblk: fix race condition on GC
Heinz Mauelshagen (1):
null_blk: fix checking for REQ_FUA
Javier González (1):
lightnvm: pblk: prevent stall due to wb threshold
Jens Axboe (7):
Merge branch 'nvme-5.1' of git://git.infradead.org/nvme into for-5.1/block
Merge branch 'md-next' of https://github.com/liu-song-6/linux into
for-5.1/block
block: kill QUEUE_FLAG_FLUSH_NQ
block: queue flag cleanup
Merge tag 'v5.0-rc6' into for-5.1/block
Merge branch 'nvme-5.1' of git://git.infradead.org/nvme into for-5.1/block
block: add bio_set_polled() helper
Jianchao Wang (2):
blk-mq: save queue mapping result into ctx directly
blk-mq: save default hctx into ctx->hctxs for not-supported type
Keyur Patel (1):
block: Replace function name in string with __func__
Li RongQing (1):
nbd: propagate genlmsg_reply return code
Marcos Paulo de Souza (2):
blk-cgroup: Fix doc related to blkcg_exit_queue
blk-sysfs: Rework documention of __blk_release_queue
Masahiro Yamada (1):
lightnvm: pblk: fix TRACE_INCLUDE_PATH
Ming Lei (24):
block: don't use bio->bi_vcnt to figure out segment number
block: remove bvec_iter_rewind()
block: introduce multi-page bvec helpers
block: introduce bio_for_each_bvec() and rq_for_each_bvec()
block: use bio_for_each_bvec() to compute multi-page bvec count
block: use bio_for_each_bvec() to map sg
block: introduce mp_bvec_last_segment()
fs/buffer.c: use bvec iterator to truncate the bio
btrfs: use mp_bvec_last_segment to get bio's last page
block: loop: pass multi-page bvec to iov_iter
bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages()
block: allow bio_for_each_segment_all() to iterate over multi-page bvec
block: enable multipage bvecs
block: always define BIO_MAX_PAGES as 256
block: document usage of bio iterator helpers
block: kill QUEUE_FLAG_NO_SG_MERGE
block: kill BLK_MQ_F_SG_MERGE
block: avoid to READ fields of null bio
block: bounce: make sure that bvec table is updated
block: introduce bvec_nth_page()
block: optimize __blk_segment_map_sg() for single-page bvec
block: optimize blk_bio_segment_split for single-page bvec
block: introduce mp_bvec_for_each_page() for iterating over page
block: fix updating bio's front segment size
Paolo Valente (14):
block, bfq: do not consider interactive queues in srt filtering
block, bfq: avoid selecting a queue w/o budget
block, bfq: make sure queue budgets are not below service received
block, bfq: remove case of redirected bic from insert_request
block, bfq: consider also ioprio classes in symmetry detection
block, bfq: split function bfq_better_to_idle
block, bfq: do not plug I/O of in-service queue when harmful
block, bfq: unconditionally plug I/O in asymmetric scenarios
block, bfq: fix sequential rq detection in rate estimation
block, bfq: fix queue removal from weights tree
block, bfq: reduce threshold for detecting command queueing
block, bfq: port commit "cfq-iosched: improve hw_tag detection"
block, bfq: do not overcharge writes in asymmetric scenarios
block, bfq: fix in-service-queue check for queue merging
Sagi Grimberg (1):
nvme: remove the .stop_ctrl callout
Tang Junhui (1):
bcache: treat stale && dirty keys as bad keys
YueHaibing (1):
floppy: remove set but not used variable 'q'
Yufen Yu (1):
raid1: simplify raid1_error function
zhengbin (1):
block: fix NULL pointer dereference in register_disk
Documentation/block/biovecs.txt | 25 ++
Documentation/filesystems/vfs.txt | 3 +
block/bfq-iosched.c | 705 ++++++++++++++++++++------------------
block/bfq-iosched.h | 11 +-
block/bfq-wf2q.c | 18 +-
block/bio.c | 49 ++-
block/blk-cgroup.c | 2 +-
block/blk-merge.c | 231 +++++++++----
block/blk-mq-debugfs.c | 3 -
block/blk-mq-sched.c | 2 +-
block/blk-mq-tag.c | 2 +-
block/blk-mq.c | 33 +-
block/blk-mq.h | 20 +-
block/blk-settings.c | 9 -
block/blk-sysfs.c | 22 +-
block/blk.h | 2 +-
block/bounce.c | 10 +-
block/elevator.c | 5 +-
block/genhd.c | 18 +-
drivers/ata/libata-scsi.c | 2 -
drivers/block/floppy.c | 3 -
drivers/block/loop.c | 48 ++-
drivers/block/mtip32xx/mtip32xx.c | 37 +-
drivers/block/nbd.c | 5 +-
drivers/block/null_blk_main.c | 3 +-
drivers/block/rbd.c | 2 +-
drivers/block/skd_main.c | 1 -
drivers/block/xen-blkfront.c | 2 +-
drivers/cdrom/cdrom.c | 7 +-
drivers/lightnvm/pblk-core.c | 8 +-
drivers/lightnvm/pblk-gc.c | 20 +-
drivers/lightnvm/pblk-init.c | 4 +-
drivers/lightnvm/pblk-map.c | 1 +
drivers/lightnvm/pblk-rb.c | 26 +-
drivers/lightnvm/pblk-recovery.c | 64 ++--
drivers/lightnvm/pblk-rl.c | 5 +-
drivers/lightnvm/pblk-trace.h | 2 +-
drivers/lightnvm/pblk-write.c | 1 +
drivers/lightnvm/pblk.h | 17 +-
drivers/md/bcache/btree.c | 3 +-
drivers/md/bcache/extents.c | 13 +-
drivers/md/bcache/request.c | 7 +-
drivers/md/bcache/stats.c | 2 +-
drivers/md/bcache/super.c | 30 +-
drivers/md/bcache/sysfs.c | 81 +++--
drivers/md/bcache/sysfs.h | 23 +-
drivers/md/bcache/util.c | 6 +-
drivers/md/bcache/writeback.h | 3 +
drivers/md/dm-crypt.c | 3 +-
drivers/md/dm-rq.c | 2 +-
drivers/md/dm-table.c | 13 -
drivers/md/md-linear.c | 3 +-
drivers/md/raid1.c | 9 +-
drivers/mmc/core/queue.c | 3 +-
drivers/nvme/host/core.c | 122 +++++--
drivers/nvme/host/fabrics.c | 11 +-
drivers/nvme/host/fabrics.h | 10 +-
drivers/nvme/host/fault_inject.c | 2 +-
drivers/nvme/host/fc.c | 14 +-
drivers/nvme/host/lightnvm.c | 16 +-
drivers/nvme/host/multipath.c | 96 +++++-
drivers/nvme/host/nvme.h | 21 +-
drivers/nvme/host/pci.c | 12 +-
drivers/nvme/host/rdma.c | 26 +-
drivers/nvme/host/tcp.c | 10 +-
drivers/nvme/host/trace.c | 10 +-
drivers/nvme/host/trace.h | 10 +-
drivers/nvme/target/admin-cmd.c | 10 +-
drivers/nvme/target/configfs.c | 10 +-
drivers/nvme/target/core.c | 10 +-
drivers/nvme/target/discovery.c | 12 +-
drivers/nvme/target/fabrics-cmd.c | 10 +-
drivers/nvme/target/fc.c | 14 +-
drivers/nvme/target/fcloop.c | 13 +-
drivers/nvme/target/io-cmd-bdev.c | 10 +-
drivers/nvme/target/loop.c | 10 +-
drivers/nvme/target/nvmet.h | 10 +-
drivers/nvme/target/rdma.c | 10 +-
drivers/scsi/scsi_lib.c | 2 +-
drivers/staging/erofs/data.c | 3 +-
drivers/staging/erofs/unzip_vle.c | 3 +-
fs/block_dev.c | 28 +-
fs/btrfs/compression.c | 3 +-
fs/btrfs/disk-io.c | 3 +-
fs/btrfs/extent_io.c | 16 +-
fs/btrfs/inode.c | 6 +-
fs/btrfs/raid56.c | 3 +-
fs/buffer.c | 12 +-
fs/crypto/bio.c | 3 +-
fs/direct-io.c | 4 +-
fs/exofs/ore.c | 3 +-
fs/exofs/ore_raid.c | 3 +-
fs/ext4/page-io.c | 3 +-
fs/ext4/readpage.c | 3 +-
fs/f2fs/data.c | 9 +-
fs/gfs2/file.c | 2 +
fs/gfs2/lops.c | 9 +-
fs/gfs2/meta_io.c | 3 +-
fs/iomap.c | 53 ++-
fs/mpage.c | 3 +-
fs/xfs/xfs_aops.c | 9 +-
fs/xfs/xfs_file.c | 1 +
include/linux/bio.h | 51 ++-
include/linux/blk-mq.h | 1 -
include/linux/blkdev.h | 68 ++--
include/linux/bvec.h | 123 +++++--
include/linux/fs.h | 2 +
include/linux/iomap.h | 1 +
include/linux/nvme-fc-driver.h | 10 +-
include/linux/nvme-fc.h | 14 +-
include/linux/nvme-rdma.h | 10 +-
include/linux/nvme-tcp.h | 2 +-
include/linux/nvme.h | 10 +-
include/uapi/linux/nvme_ioctl.h | 9 -
114 files changed, 1472 insertions(+), 1124 deletions(-)
--
Jens Axboe