Hi Linus,
This is the main block pull request for 5.3. Nothing earth shattering or
major in here, just fixes, additions, and improvements all over the map.
This pull request contains:
- Series of documentation fixes (Bart)
- Optimization of the blk-mq ctx get/put (Bart)
- null_blk removal race condition fix (Bob)
- req/bio_op() cleanups (Chaitanya)
- Series cleaning up the segment accounting, and request/bio mapping
(Christoph)
- Series cleaning up the page getting/putting for bios (Christoph)
- block cgroup cleanups and moving it to where it is used (Christoph)
- block cgroup fixes (Tejun)
- Series of fixes and improvements to bcache, most notably a write
deadlock fix (Coly)
- blk-iolatency STS_AGAIN and accounting fixes (Dennis)
- Series of improvements and fixes to BFQ (Douglas, Paolo)
- debugfs_create() return value check removal for drbd (Greg)
- Use struct_size(), where appropriate (Gustavo)
- Two lighnvm fixes (Heiner, Geert)
- MD fixes, including a read balance and corruption fix (Guoqing,
Marcos, Xiao, Yufen)
- block opal shadow mbr additions (Jonas, Revanth)
- sbitmap compare-and-exhange improvemnts (Pavel)
- Fix for potential bio->bi_size overflow (Ming)
- NVMe pull requests:
- improved PCIe suspent support (Keith Busch)
- error injection support for the admin queue (Akinobu Mita)
- Fibre Channel discovery improvements (James Smart)
- tracing improvements including nvmetc tracing support (Minwoo Im)
- misc fixes and cleanups (Anton Eidelman, Minwoo Im, Chaitanya
Kulkarni)"
- Various little fixes and improvements to drivers and core.
git://git.kernel.dk/linux-block.git tags/for-5.3/block-20190708
----------------------------------------------------------------
Akinobu Mita (3):
nvme: prepare for fault injection into admin commands
nvme: enable to inject errors into admin commands
Documentation: nvme: add an example for nvme fault injection
Alexandru Ardelean (1):
bcache: use sysfs_match_string() instead of __sysfs_match_string()
Anton Eidelman (1):
nvme: fix possible io failures when removing multipathed ns
Arnd Bergmann (1):
floppy: fix harmless clang build warning
Bart Van Assche (6):
block, documentation: Fix wbt_lat_usec documentation
block, documentation: Sort queue sysfs attribute names alphabetically
block, documentation: Explain the word 'segments'
block, documentation: Document discard_zeroes_data, fua,
max_discard_segments and write_zeroes_max_bytes
blk-mq: remove blk_mq_put_ctx()
blk-mq: simplify blk_mq_make_request()
Bob Liu (1):
block: null_blk: fix race condition for null_del_dev
Chaitanya Kulkarni (12):
block: use req_op() to maintain consistency
null_blk: remove duplicate 0 initialization
block: get rid of redundant else
block: use right format specifier for op
block: code cleanup queue_poll_stat_show()
block: add centralize REQ_OP_XXX to string helper
block: use blk_op_str() in blk-mq-debugfs.c
block: update print_req_error()
f2fs: use block layer helper for show_bio_op macro
nvme-pci: set the errno on ctrl state change error
nvme-pci: clean up nvme_remove_dead_ctrl a bit
null_blk: fix type mismatch null_handle_cmd()
Christoph Hellwig (24):
block: initialize the write priority in blk_rq_bio_prep
block: remove blk_init_request_from_bio
block: remove the bi_phys_segments field in struct bio
block: simplify blk_recalc_rq_segments
block: untangle the end of blk_bio_segment_split
block: mark blk_rq_bio_prep as inline
blk-cgroup: factor out a helper to read rwstat counter
blk-cgroup: pass blkg_rwstat structures by reference
blk-cgroup: introduce a new struct blkg_rwstat_sample
blk-cgroup: move struct blkg_stat to bfq
bfq-iosched: move bfq_stat_recursive_sum into the only caller
block: rename CONFIG_DEBUG_BLK_CGROUP to CONFIG_BFQ_CGROUP_DEBUG
block: improve print_req_error
cgroup: export css_next_descendant_pre for bfq
block: move the BIO_NO_PAGE_REF check into bio_release_pages
block: optionally mark pages dirty in bio_release_pages
block: use bio_release_pages in bio_unmap_user
block: use bio_release_pages in bio_map_user_iov
iomap: use bio_release_pages in iomap_dio_bio_end_io
block_dev: use bio_release_pages in blkdev_bio_end_io
block_dev: use bio_release_pages in bio_unmap_user
direct-io: use bio_release_pages in dio_bio_complete
block: never take page references for ITER_BVEC
block: nr_phys_segments needs to be zero for REQ_OP_WRITE_ZEROES
Coly Li (36):
bcache: don't set max writeback rate if gc is running
bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
bcache: fix return value error in bch_journal_read()
Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
bcache: avoid flushing btree node in cache_set_flush() if io disabled
bcache: ignore read-ahead request failure on backing device
bcache: add io error counting in write_bdev_super_endio()
bcache: remove unnecessary prefetch() in bset_search_tree()
bcache: add return value check to bch_cached_dev_run()
bcache: remove unncessary code in bch_btree_keys_init()
bcache: check CACHE_SET_IO_DISABLE in allocator code
bcache: check CACHE_SET_IO_DISABLE bit in bch_journal()
bcache: more detailed error message to bcache_device_link()
bcache: add more error message in bch_cached_dev_attach()
bcache: improve error message in bch_cached_dev_run()
bcache: remove "XXX:" comment line from run_cache_set()
bcache: make bset_search_tree() be more understandable
bcache: add pendings_cleanup to stop pending bcache device
bcache: fix mistaken sysfs entry for io_error counter
bcache: destroy dc->writeback_write_wq if failed to create
dc->writeback_thread
bcache: stop writeback kthread and kworker when bch_cached_dev_run()
failed
bcache: avoid a deadlock in bcache_reboot()
bcache: acquire bch_register_lock later in cached_dev_detach_finish()
bcache: acquire bch_register_lock later in cached_dev_free()
bcache: fix potential deadlock in cached_def_free()
bcache: add code comments for journal_read_bucket()
bcache: set largest seq to ja->seq[bucket_index] in journal_read_bucket()
bcache: shrink btree node cache after bch_btree_check()
bcache: Revert "bcache: free heap cache_set->flush_btree in
bch_journal_free"
bcache: Revert "bcache: fix high CPU occupancy during journal"
bcache: only clear BTREE_NODE_dirty bit when it is set
bcache: add comments for mutex_lock(&b->write_lock)
bcache: remove retry_flush_write from struct cache_set
bcache: fix race in btree_flush_write()
bcache: performance improvement for btree_flush_write()
bcache: add reclaimed_journal_buckets to struct cache_set
Damien Le Moal (1):
block: Remove unused code
Dan Carpenter (1):
md/raid1: Fix a warning message in remove_wb()
Dennis Zhou (2):
blk-iolatency: only account submitted bios
blk-iolatency: fix STS_AGAIN handling
Douglas Anderson (2):
block, bfq: Init saved_wr_start_at_switch_to_srt in unlikely case
block, bfq: NULL out the bic when it's no longer valid
Fuqian Huang (2):
block: mtip32xx: Remove call to memset after dma_alloc_coherent
block: skd_main.c: Remove call to memset after dma_alloc_coherent
Geert Uytterhoeven (1):
lightnvm: fix uninitialized pointer in nvm_remove_tgt()
Greg Kroah-Hartman (1):
block: drbd: no need to check return value of debugfs_create functions
Guoqing Jiang (6):
md/raid10: read balance chooses idlest disk for SSD
md/raid1: fix potential data inconsistency issue with write behind device
md: introduce mddev_create/destroy_wb_pool for the change of member device
md-bitmap: create and destroy wb_info_pool with the change of backlog
md-bitmap: create and destroy wb_info_pool with the change of bitmap
md: add bitmap_abort label in md_run
Gustavo A. R. Silva (3):
md: raid10: Use struct_size() in kmalloc()
block: genhd: Use struct_size() helper
block: bio: Use struct_size() in kmalloc()
Heiner Litz (1):
lightnvm: pblk: fix freeing of merged pages
James Smart (8):
nvmet: add transport discovery change op
nvmet-fc: add transport discovery change event callback support
nvme-fcloop: add support for nvmet discovery_event op
lpfc: add support to generate RSCN events for nport
lpfc: add nvmet discovery_event op support
lpfc: add support for translating an RSCN rcv into a discovery rescan
lpfc: add sysfs interface to post NVME RSCN
nvme-fc: add message when creating new association
Jens Axboe (4):
Merge branch 'md-next' of https://github.com/liu-song-6/linux into
for-5.3/block
Merge branch 'nvme-5.3' of git://git.infradead.org/nvme into for-5.3/block
Merge branch 'md-next' of https://github.com/liu-song-6/linux into
for-5.3/block
Merge tag 'v5.2-rc6' into for-5.3/block
Jonas Rabenstein (3):
block: sed-opal: add ioctl for done-mark of shadow mbr
block: sed-opal: ioctl for writing to shadow mbr
block: sed-opal: check size of shadow mbr
Keith Busch (2):
nvme: export get and set features
nvme-pci: use host managed power state for suspend
Marcos Paulo de Souza (3):
drivers: md: Unify common definitions of raid1 and raid10
md: md.c: Return -ENODEV when mddev is NULL in rdev_attr_show
md: raid1-10: Unify r{1,10}bio_pool_free
Ming Lei (1):
block: fix .bi_size overflow
Minwoo Im (11):
block: move tag field position in struct request
nvme: introduce nvme_is_fabrics to check fabrics cmd
nvme-pci: remove unnecessary zero for static var
nvme-pci: remove queue_count_ops for write_queues and poll_queues
nvme-pci: adjust irq max_vector using num_possible_cpus()
nvme-pci: properly report state change failure in nvme_reset_work
nvme-trace: do not export nvme_trace_disk_name
nvme-trace: move opcode symbol print to nvme.h
nvme-trace: support for fabrics commands in host-side
nvme-trace: print result and status in hex format
nvmet: introduce target-side trace
Paolo Valente (7):
block, bfq: reset inject limit when think-time state changes
block, bfq: fix rq_in_driver check in bfq_update_inject_limit
block, bfq: update base request service times when possible
block, bfq: bring forward seek&think time update
block, bfq: detect wakers and unconditionally inject their I/O
block, bfq: preempt lower-weight or lower-priority queues
block, bfq: re-schedule empty queues if they deserve I/O plugging
Pavel Begunkov (3):
blk-mq/debugfs: Fix improper print qualifier
blk-core: Remove blk_end_request*() declarations
sbitmap: Replace cmpxchg with xchg
Revanth Rajashekar (2):
block: sed-opal: PSID reverttper capability
block: sed-opal: "Never True" conditions
Tejun Heo (5):
blk-iolatency: clear use_delay when io.latency is set to zero
blkcg: update blkcg_print_stat() to handle larger outputs
blkcg: perpcu_ref init/exit should be done from blkg_alloc/free()
blkcg: blkcg_activate_policy() should initialize ancestors first
blkcg, writeback: dead memcgs shouldn't contribute to writeback ownership
arbitration
Xiao Ni (1):
raid5-cache: Need to do start() part job after adding journal device
Yufen Yu (2):
md: fix spelling typo and add necessary space
md/raid1: get rid of extra blank line and space
Documentation/block/bfq-iosched.txt | 12 +-
Documentation/block/biodoc.txt | 1 -
Documentation/block/queue-sysfs.txt | 64 +-
Documentation/cgroup-v1/blkio-controller.txt | 12 +-
.../fault-injection/nvme-fault-injection.txt | 56 ++
block/Kconfig.iosched | 7 +
block/bfq-cgroup.c | 212 +++--
block/bfq-iosched.c | 967 ++++++++++++++-------
block/bfq-iosched.h | 48 +-
block/bio.c | 96 +-
block/blk-cgroup.c | 139 +--
block/blk-core.c | 111 ++-
block/blk-iolatency.c | 51 +-
block/blk-map.c | 10 +-
block/blk-merge.c | 112 +--
block/blk-mq-debugfs.c | 42 +-
block/blk-mq-sched.c | 31 +-
block/blk-mq-sched.h | 10 +-
block/blk-mq-tag.c | 8 -
block/blk-mq.c | 44 +-
block/blk-mq.h | 7 +-
block/blk.h | 36 +-
block/genhd.c | 5 +-
block/kyber-iosched.c | 6 +-
block/mq-deadline.c | 5 +-
block/opal_proto.h | 16 +
block/sed-opal.c | 197 ++++-
drivers/block/drbd/drbd_debugfs.c | 64 +-
drivers/block/drbd/drbd_debugfs.h | 4 +-
drivers/block/drbd/drbd_main.c | 3 +-
drivers/block/floppy.c | 2 +-
drivers/block/loop.c | 16 +-
drivers/block/mtip32xx/mtip32xx.c | 5 -
drivers/block/null_blk_main.c | 14 +-
drivers/block/skd_main.c | 1 -
drivers/lightnvm/core.c | 2 +-
drivers/lightnvm/pblk-core.c | 18 +-
drivers/md/bcache/alloc.c | 9 +
drivers/md/bcache/bcache.h | 6 +-
drivers/md/bcache/bset.c | 61 +-
drivers/md/bcache/btree.c | 53 +-
drivers/md/bcache/btree.h | 2 +
drivers/md/bcache/io.c | 12 +
drivers/md/bcache/journal.c | 141 ++-
drivers/md/bcache/journal.h | 4 +
drivers/md/bcache/super.c | 227 ++++-
drivers/md/bcache/sysfs.c | 67 +-
drivers/md/bcache/util.h | 2 -
drivers/md/bcache/writeback.c | 8 +
drivers/md/md-bitmap.c | 20 +
drivers/md/md.c | 129 ++-
drivers/md/md.h | 23 +
drivers/md/raid1-10.c | 30 +
drivers/md/raid1.c | 119 ++-
drivers/md/raid10.c | 86 +-
drivers/md/raid5.c | 12 +-
drivers/nvme/host/core.c | 45 +-
drivers/nvme/host/fabrics.c | 2 +-
drivers/nvme/host/fault_inject.c | 41 +-
drivers/nvme/host/fc.c | 6 +
drivers/nvme/host/lightnvm.c | 2 +-
drivers/nvme/host/nvme.h | 42 +-
drivers/nvme/host/pci.c | 143 ++-
drivers/nvme/host/trace.c | 64 +-
drivers/nvme/host/trace.h | 66 +-
drivers/nvme/target/Makefile | 3 +
drivers/nvme/target/core.c | 12 +-
drivers/nvme/target/discovery.c | 4 +
drivers/nvme/target/fabrics-cmd.c | 2 +-
drivers/nvme/target/fc.c | 13 +-
drivers/nvme/target/fcloop.c | 37 +
drivers/nvme/target/nvmet.h | 2 +
drivers/nvme/target/trace.c | 201 +++++
drivers/nvme/target/trace.h | 141 +++
drivers/scsi/lpfc/lpfc.h | 2 +
drivers/scsi/lpfc/lpfc_attr.c | 60 ++
drivers/scsi/lpfc/lpfc_crtn.h | 4 +
drivers/scsi/lpfc/lpfc_els.c | 127 +++
drivers/scsi/lpfc/lpfc_hbadisc.c | 35 +
drivers/scsi/lpfc/lpfc_hw.h | 2 +
drivers/scsi/lpfc/lpfc_nvme.c | 44 +
drivers/scsi/lpfc/lpfc_nvmet.c | 17 +
drivers/scsi/lpfc/lpfc_sli.c | 1 +
fs/block_dev.c | 19 +-
fs/direct-io.c | 15 +-
fs/fs-writeback.c | 8 +-
fs/io_uring.c | 3 -
fs/iomap.c | 10 +-
fs/xfs/xfs_aops.c | 2 +-
include/linux/bio.h | 31 +-
include/linux/blk-cgroup.h | 106 +--
include/linux/blk-mq.h | 2 +-
include/linux/blk_types.h | 6 -
include/linux/blkdev.h | 19 +-
include/linux/elevator.h | 2 +-
include/linux/nvme-fc-driver.h | 6 +
include/linux/nvme.h | 66 +-
include/linux/sed-opal.h | 3 +
include/linux/uio.h | 10 +-
include/trace/events/f2fs.h | 11 +-
include/uapi/linux/sed-opal.h | 21 +
init/Kconfig | 8 -
kernel/cgroup/cgroup.c | 1 +
lib/sbitmap.c | 10 +-
104 files changed, 3368 insertions(+), 1554 deletions(-)
create mode 100644 drivers/nvme/target/trace.c
create mode 100644 drivers/nvme/target/trace.h
--
Jens Axboe