Hi Linus,
This is the main pull request for the 4.18 merge window. This pull
request contains:
- Series from Christoph, cleaning up how we pass around gfp_t and
blk_mq_req_flags_t.
- Series from Christoph, preparing us to defer scheduler attach.
- Series from Christoph, cleaing up drivers handling of bounce buffers
- Series from Christoph/Bart/Keith, fixing timeout handling corner
cases.
- Series of bcache fixes, by way of Coly.
- Series from Kent, with both some prep work for bcachefs and some
block layer optimizations.
- Series from Kent, converting users of bio_sets to using embedded
structs.
- Patches from Paolo/Davide/Filippo, with fixes for the BFQ io
scheduler.
- Set of lightnvm fixes and improvements. By way of Matias,
contributions from Hans and Javier.
- Series from me, adding discard throttling to blk-wbt.
- Series from me/Omar/Ming on sbitmap blk-mq-tag handling.
- Removal of the sparc jsflash block driver, acked by DaveM.
- Kyber scheduler improvement from Jianchao, making it more
friendly wrt merging.
- Conversion of symbolic proc permissions to octal, from Joe
Perches. Previously the block parts were a mix of both.
- Series of nbd fixes from Josef and Kevin Vigor.
- Series from Omar, unifying how we handle the various kinds of
timestamps that the block core and utility code uses.
- Three NVMe pull requests from Keith and Christoph, bringing
AEN to feature completeness, file backed namespaces, cq/sq
lock split, and various fixes.
- Various little fixes and improvements all over the map.
git://git.kernel.dk/linux-block.git tags/for-4.18/block-20180603
----------------------------------------------------------------
Andy Shevchenko (3):
bcache: Move couple of string arrays to sysfs.c
bcache: Move couple of functions to sysfs.c
bcache: Replace bch_read_string_list() by __sysfs_match_string()
Anna-Maria Gleixner (1):
block: Remove redundant WARN_ON()
Bart Van Assche (1):
blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
Chaitanya Kulkarni (4):
nvmet: make a few error messages more generic
nvmet: remove duplicate NULL initialization for req->ns
nvmet: add simple file backed ns support
nvmet-loop: use nr_phys_segments when map rq to sgl
Chengguang Xu (1):
blk-throttle: return proper bool type to caller instead of 0/1
Christoph Hellwig (49):
mtip32xx: don't use block layer bounce buffers
DAC960: don't use block layer bounce buffers
memstick: don't call blk_queue_bounce_limit
mtd_blkdevs: handle highmem pages
aoe: handle highmem pages
jsflash: handle highmem pages
ps3disk: handle highmem pages
memstick: remove unused variables
scsi/osd: remove the gfp argument to osd_start_request
block: fix __get_request documentation
block: sanitize blk_get_request calling conventions
block: pass an explicit gfp_t to get_request
block: use GFP_NOIO instead of __GFP_DIRECT_RECLAIM
block: consistently use GFP_NOIO instead of __GFP_NORECLAIM
nvme: mark the result argument to nvme_complete_async_event volatile
nvme-pci: simplify nvme_cqe_valid
libata: remove ata_scsi_timed_out
block: rename BLK_EH_NOT_HANDLED to BLK_EH_DONE
nvme: return BLK_EH_DONE from ->timeout
nbd: complete requests from ->timeout
mtip32xx: complete requests from ->timeout
null_blk: complete requests from ->timeout
scsi_transport_fc: complete requests from ->timeout
mmc: complete requests from ->timeout
libiscsi: don't try to bypass SCSI EH
block: remove BLK_EH_HANDLED
block: document the blk_eh_timer_return values
blk-mq: simplify blk_mq_rq_timed_out
block: unexport check_disk_size_change
block: don't print a message when the device went away
block: remove parent device reference from struct bsg_class_device
nvme-pci: simplify __nvme_submit_cmd
nvme-loop: add support for multiple ports
blk-mq: only iterate over inflight requests in blk_mq_tagset_busy_iter
nvme-fabrics: allow internal passthrough command on deleting controllers
nvme.h: untangle AEN notice definitions
nvme.h: add the changed namespace list log
nvmet: add a new nvmet_zero_sgl helper
nvmet: split log page implementation
nvmet: implement the changed namespaces log
nvmet: add AEN configuration support
nvmet: mask pending AENs
nvme: mark nvme_queue_scan static
nvme: use the changed namespaces list log to clear ns data changed AENs
block: move initialization of elevator-related fields to
blk_alloc_queue_node
block: unexport elevator_init/exit
block: remove the always unused name argument to elevator_init
block: move sysfs_lock into elevator_init
block: split the blk-mq case from elevator_init
Christophe JAILLET (1):
mtip32xx: Fix an error handling path in 'mtip_pci_probe()'
Coly Li (1):
bcache: stop bcache device when backing device is offline
Dan Melnic (1):
block/ndb: add WQ_UNBOUND to the knbd-recv workqueue
Davide Sapienza (2):
block, bfq: increase weight-raising duration for interactive apps
block, bfq: prevent soft_rt_next_start from being stuck at infinity
Filippo Muzzini (2):
block, bfq: remove wrong lock in bfq_requests_merged
block, bfq: remove the removal of 'next' rq in bfq_requests_merged
Hannes Reinecke (6):
nvme-fabrics: centralize discovery controller defaults
nvme-fabrics: allow duplicate connections to the discovery controller
nvme: fix KASAN warning when parsing host nqn
nvme: fixup memory leak in nvme_init_identify()
nvme.h: add AEN configuration symbols
nvme: submit AEN event configuration on startup
Hans Holmberg (5):
lightnvm: pblk: rework write error recovery path
lightnvm: pblk: garbage collect lines with failed writes
lightnvm: pblk: fix smeta write error path
lightnvm: pblk: only try to recover lines with written smeta
lightnvm: pblk: kick writer on new flush points
Igor Konopko (2):
lightnvm: proper error handling for pblk_bio_add_pages
lightnvm: fix partial read error path
Ivan Bornyakov (1):
nvme: host: core: fix precedence of ternary operator
James Smart (4):
nvme-fc: remove setting DNR on exception conditions
nvme-fabrics: remove unnecessary controller subnqn validation
nvmet-fc: increase LS buffer count per fc port
nvme: allow duplicate controller if prior controller being deleted
Javier González (13):
lightnvm: pblk: fail gracefully on line alloc. failure
lightnvm: pblk: recheck for bad lines at runtime
lightnvm: pblk: check read lba on gc path
lightnvm: pblk: improve error msg on corrupted LBAs
lightnvm: pblk: warn in case of corrupted write buffer
lightnvm: pblk: return NVM_ error on failed submission
lightnvm: pblk: remove unnecessary indirection
lightnvm: pblk: remove unnecessary argument
lightnvm: pblk: check for chunk size before allocating it
lightnvm: pass flag on graceful teardown to targets
lightnvm: pblk: remove dead function
lightnvm: pblk: remove unnecessary bio_get/put
lightnvm: pblk: take bitmap alloc. out of critical section
Jens Axboe (26):
nvme: only reconfigure discard if necessary
block: break discard submissions into the user defined size
blk-wbt: account any writing command as a write
blk-wbt: pass in enum wbt_flags to get_rq_wait()
blk-wbt: throttle discards like background writes
blk-mq: don't call into depth limiting for reserved tags
bfq-iosched: don't worry about reserved tags in limit_depth
bfq: calculate shallow depths at init time
bfq-iosched: remove unused variable
bfq-iosched: update shallow depth to smallest one used
kyber-iosched: update shallow depth when setting up hardware queue
sbitmap: fix race in wait batch accounting
Remove jsflash driver
nvme-pci: remove cq check after submission
nvme-pci: move ->cq_vector == -1 check outside of ->q_lock
nvme-pci: handle completions outside of the queue lock
nvme-pci: split the nvme queue lock into submission and completion locks
nvme-pci: drop IRQ disabling on submission queue lock
Merge branch 'nvme-4.18' of git://git.infradead.org/nvme into
for-4.18/block
nvme-pci: fix race between poll and IRQ completions
block: move ->timeout request member
Merge branch 'nvme-4.18-2' of git://git.infradead.org/nvme into
for-4.18/block
blk-mq: abstract out blk-mq-sched rq list iteration bio merge helper
block: fixup bioset_integrity_create() call
Merge branch 'nvme-4.18' of git://git.infradead.org/nvme into
for-4.18/block
block: don't use blocking queue entered for recursive bio submits
Jianchao Wang (3):
nvme-pci: set nvmeq->cq_vector after alloc cq/sq
nvme-rdma: stop admin queue before freeing it
block: kyber: make kyber more friendly with merging
Joe Perches (1):
block drivers/block: Use octal not symbolic permissions
Johannes Thumshirn (3):
nvme: fc: provide a descriptive error
nvme: change order of qid and cmdid in completion trace
nvme: fix lockdep warning in nvme_mpath_clear_current_path
Josef Bacik (8):
block: fix MAINTAINERS email for nbd
nbd: fix nbd device deletion
nbd: update size when connected
nbd: use bd_set_size when updating disk size
nbd: clear_sock on netlink disconnect
nbd: fix how we set bd_invalidated
nbd: call nbd_bdev_reset instead of bd_set_size on disconnect
nbd: set discard granularity properly
Keith Busch (7):
nvme/pci: Use async_schedule for initial reset work
nvme/pci: Hold controller reference during async probe
nvme/pci: Sync controller reset for AER slot_reset
nvme-pci: Fix AER reset handling
blk-mq: Fix timeout and state order
blk-mq: Remove generation seqeunce
nvme-pci: Rate limit the nvme timeout warnings
Kent Overstreet (23):
mempool: Add mempool_init()/mempool_exit()
block: Convert bio_set to mempool_init()
block: Add bioset_init()/bioset_exit()
block: Use bioset_init() for fs_bio_set
block: Add bio_copy_data_iter(), zero_fill_bio_iter()
block: Split out bio_list_copy_data()
block: Add missing flush_dcache_page() call
block: Add warning for bi_next not NULL in bio_endio()
block: Export bio check/set pages_dirty
block: Add sysfs entry for fua support
block: convert bounce, q->bio_split to bioset_init()/mempool_init()
drbd: convert to bioset_init()/mempool_init()
pktcdvd: convert to bioset_init()/mempool_init()
lightnvm: convert to bioset_init()/mempool_init()
bcache: convert to bioset_init()/mempool_init()
md: convert to bioset_init()/mempool_init()
dm: convert to bioset_init()/mempool_init()
target: convert to bioset_init()/mempool_init()
fs: convert block_dev.c to bioset_init()
btrfs: convert to bioset_init()/mempool_init()
xfs: convert to bioset_init()/mempool_init()
block: Drop bioset_create()
dm-crypt: fix warning in shutdown path
Kevin Vigor (1):
nbd: clear DISCONNECT_REQUESTED flag once disconnection occurs.
Liu Bo (2):
null_blk: add blocking description and remove lightnvm
blk-throttle: fix potential NULL pointer dereference in
throtl_select_dispatch
Marcin Dziegielewski (1):
lightnvm: pblk: add possibility to set write buffer size manually
Micah Parrish (1):
NVMe: Add Quirk Delay before CHK RDY for Seagate Nytro Flash Storage
Ming Lei (2):
blk-mq: avoid starving tag allocation after allocating process migrates
blk-mq: update nr_requests when switching to 'none' scheduler
Omar Sandoval (9):
block: move some wbt helpers to blk-wbt.c
block: pass struct request instead of struct blk_issue_stat to wbt
block: replace bio->bi_issue_stat with bio-specific type
block: get rid of struct blk_issue_stat
block: use ktime_get_ns() instead of sched_clock() for cfq and bfq
block: move blk_stat_add() to __blk_mq_end_request()
block: consolidate struct request timestamp fields
sbitmap: fix missed wakeups caused by sbitmap_queue_get_shallow()
sbitmap: warn if using smaller shallow depth than was setup
Paolo Valente (4):
block, bfq: postpone rq preparation to insert or merge
block, bfq: remove wrong check in bfq_requests_merged
block, bfq: add description of weight-raising heuristics
block, bfq: remove slow-system class
Sebastian Andrzej Siewior (1):
block: don't disable interrupts during kmap_atomic()
SeongJae Park (1):
brd: Mark as non-rotational
Tejun Heo (1):
bdi: Move cgroup bdi_writeback to a dedicated low concurrency workqueue
Tetsuo Handa (1):
loop: remember whether sysfs_create_group() was done
Thomas Gleixner (1):
block: Shorten interrupt disabled regions
Wei Xu (1):
nvme: lightnvm: add granby support
Wei Yongjun (2):
nvmet: fix a typo in nvmet_file_ns_enable()
nvmet: fix error return code in nvmet_file_ns_enable()
huhai (3):
blk-mq: remove redundant insert case in blk_mq_make_request()
blk-mq: clear hctx->dispatch_from when mappings change
blk-mq: remove wrong 'unlikely' check
Documentation/block/null_blk.txt | 9 +-
Documentation/scsi/scsi_eh.txt | 15 +-
MAINTAINERS | 2 +-
arch/sparc/include/uapi/asm/jsflash.h | 40 --
block/bfq-cgroup.c | 40 +-
block/bfq-iosched.c | 478 +++++++++--------
block/bfq-iosched.h | 30 +-
block/bio-integrity.c | 29 +-
block/bio.c | 189 ++++---
block/blk-core.c | 120 ++---
block/blk-integrity.c | 12 +-
block/blk-lib.c | 12 +-
block/blk-merge.c | 29 +-
block/blk-mq-debugfs.c | 1 -
block/blk-mq-sched.c | 46 +-
block/blk-mq-sched.h | 2 -
block/blk-mq-sysfs.c | 6 +-
block/blk-mq-tag.c | 14 +-
block/blk-mq.c | 340 ++++--------
block/blk-mq.h | 42 +-
block/blk-stat.c | 10 +-
block/blk-stat.h | 45 +-
block/blk-sysfs.c | 80 +--
block/blk-throttle.c | 35 +-
block/blk-timeout.c | 6 +-
block/blk-wbt.c | 129 +++--
block/blk-wbt.h | 55 +-
block/blk-zoned.c | 8 +-
block/blk.h | 5 +-
block/bounce.c | 52 +-
block/bsg-lib.c | 6 +-
block/bsg.c | 44 +-
block/cfq-iosched.c | 66 ++-
block/deadline-iosched.c | 3 +-
block/elevator.c | 101 ++--
block/genhd.c | 37 +-
block/kyber-iosched.c | 199 +++++--
block/mq-deadline.c | 3 +-
block/partition-generic.c | 26 +-
block/scsi_ioctl.c | 10 +-
drivers/ata/libata-eh.c | 51 --
drivers/block/DAC960.c | 11 +-
drivers/block/DAC960.h | 1 -
drivers/block/aoe/aoeblk.c | 11 +-
drivers/block/aoe/aoecmd.c | 3 +-
drivers/block/brd.c | 10 +-
drivers/block/drbd/drbd_bitmap.c | 5 +-
drivers/block/drbd/drbd_debugfs.c | 20 +-
drivers/block/drbd/drbd_int.h | 10 +-
drivers/block/drbd/drbd_main.c | 73 +--
drivers/block/drbd/drbd_receiver.c | 6 +-
drivers/block/drbd/drbd_req.c | 4 +-
drivers/block/drbd/drbd_req.h | 2 +-
drivers/block/floppy.c | 2 +-
drivers/block/loop.c | 17 +-
drivers/block/loop.h | 1 +
drivers/block/mtip32xx/mtip32xx.c | 29 +-
drivers/block/nbd.c | 77 ++-
drivers/block/null_blk.c | 36 +-
drivers/block/paride/pd.c | 2 +-
drivers/block/pktcdvd.c | 60 +--
drivers/block/ps3disk.c | 2 -
drivers/block/rbd.c | 44 +-
drivers/block/rsxx/core.c | 6 +-
drivers/block/sx8.c | 2 +-
drivers/block/virtio_blk.c | 8 +-
drivers/block/xen-blkback/blkback.c | 2 +-
drivers/block/xen-blkback/xenbus.c | 4 +-
drivers/block/xen-blkfront.c | 7 +-
drivers/cdrom/cdrom.c | 2 +-
drivers/ide/ide-atapi.c | 2 +-
drivers/ide/ide-cd.c | 2 +-
drivers/ide/ide-cd_ioctl.c | 2 +-
drivers/ide/ide-devsets.c | 2 +-
drivers/ide/ide-disk.c | 2 +-
drivers/ide/ide-ioctls.c | 4 +-
drivers/ide/ide-park.c | 4 +-
drivers/ide/ide-pm.c | 5 +-
drivers/ide/ide-tape.c | 4 +-
drivers/ide/ide-taskfile.c | 4 +-
drivers/lightnvm/core.c | 10 +-
drivers/lightnvm/pblk-cache.c | 10 +-
drivers/lightnvm/pblk-core.c | 233 ++++++---
drivers/lightnvm/pblk-gc.c | 112 ++--
drivers/lightnvm/pblk-init.c | 172 ++++---
drivers/lightnvm/pblk-map.c | 33 +-
drivers/lightnvm/pblk-rb.c | 48 +-
drivers/lightnvm/pblk-read.c | 146 +++---
drivers/lightnvm/pblk-recovery.c | 121 +----
drivers/lightnvm/pblk-rl.c | 29 +-
drivers/lightnvm/pblk-sysfs.c | 15 +-
drivers/lightnvm/pblk-write.c | 269 ++++++----
drivers/lightnvm/pblk.h | 58 ++-
drivers/md/bcache/bcache.h | 14 +-
drivers/md/bcache/bset.c | 13 +-
drivers/md/bcache/bset.h | 2 +-
drivers/md/bcache/btree.c | 4 +-
drivers/md/bcache/io.c | 4 +-
drivers/md/bcache/request.c | 18 +-
drivers/md/bcache/super.c | 109 ++--
drivers/md/bcache/sysfs.c | 51 +-
drivers/md/bcache/util.c | 35 --
drivers/md/bcache/util.h | 5 -
drivers/md/dm-bio-prison-v1.c | 13 +-
drivers/md/dm-bio-prison-v2.c | 13 +-
drivers/md/dm-cache-target.c | 25 +-
drivers/md/dm-core.h | 4 +-
drivers/md/dm-crypt.c | 58 +--
drivers/md/dm-integrity.c | 15 +-
drivers/md/dm-io.c | 29 +-
drivers/md/dm-kcopyd.c | 22 +-
drivers/md/dm-log-userspace-base.c | 19 +-
drivers/md/dm-mpath.c | 3 +-
drivers/md/dm-region-hash.c | 23 +-
drivers/md/dm-rq.c | 4 +-
drivers/md/dm-snap.c | 17 +-
drivers/md/dm-thin.c | 32 +-
drivers/md/dm-verity-fec.c | 55 +-
drivers/md/dm-verity-fec.h | 8 +-
drivers/md/dm-zoned-target.c | 13 +-
drivers/md/dm.c | 55 +-
drivers/md/md-faulty.c | 2 +-
drivers/md/md-linear.c | 2 +-
drivers/md/md-multipath.c | 17 +-
drivers/md/md-multipath.h | 2 +-
drivers/md/md.c | 61 +--
drivers/md/md.h | 4 +-
drivers/md/raid0.c | 5 +-
drivers/md/raid1.c | 76 ++-
drivers/md/raid1.h | 6 +-
drivers/md/raid10.c | 60 ++-
drivers/md/raid10.h | 6 +-
drivers/md/raid5-cache.c | 43 +-
drivers/md/raid5-ppl.c | 42 +-
drivers/md/raid5.c | 12 +-
drivers/md/raid5.h | 2 +-
drivers/memstick/core/ms_block.c | 6 -
drivers/memstick/core/mspro_block.c | 6 -
drivers/message/fusion/mptsas.c | 2 +-
drivers/mmc/core/block.c | 12 +-
drivers/mmc/core/queue.c | 5 +-
drivers/mtd/mtd_blkdevs.c | 20 +-
drivers/nvme/host/core.c | 157 ++++--
drivers/nvme/host/fabrics.c | 100 ++--
drivers/nvme/host/fabrics.h | 4 +-
drivers/nvme/host/fc.c | 15 +-
drivers/nvme/host/nvme.h | 9 +-
drivers/nvme/host/pci.c | 258 ++++++----
drivers/nvme/host/rdma.c | 12 +-
drivers/nvme/host/trace.h | 4 +-
drivers/nvme/target/Makefile | 4 +-
drivers/nvme/target/admin-cmd.c | 143 ++---
drivers/nvme/target/core.c | 128 +++--
drivers/nvme/target/discovery.c | 2 -
drivers/nvme/target/fabrics-cmd.c | 4 -
drivers/nvme/target/fc.c | 2 +-
drivers/nvme/target/{io-cmd.c => io-cmd-bdev.c} | 77 +--
drivers/nvme/target/io-cmd-file.c | 304 +++++++++++
drivers/nvme/target/loop.c | 52 +-
drivers/nvme/target/nvmet.h | 51 +-
drivers/s390/block/dasd.c | 6 +-
drivers/sbus/char/Kconfig | 7 -
drivers/sbus/char/Makefile | 1 -
drivers/sbus/char/jsflash.c | 658 ------------------------
drivers/scsi/gdth.c | 2 +-
drivers/scsi/libiscsi.c | 6 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 2 +-
drivers/scsi/mvumi.c | 2 +-
drivers/scsi/osd/osd_initiator.c | 24 +-
drivers/scsi/osst.c | 2 +-
drivers/scsi/qla4xxx/ql4_os.c | 2 +-
drivers/scsi/scsi_error.c | 10 +-
drivers/scsi/scsi_lib.c | 4 +-
drivers/scsi/scsi_transport_fc.c | 16 +-
drivers/scsi/scsi_transport_iscsi.c | 2 +-
drivers/scsi/scsi_transport_sas.c | 19 +-
drivers/scsi/scsi_transport_srp.c | 4 +-
drivers/scsi/sg.c | 2 +-
drivers/scsi/st.c | 2 +-
drivers/scsi/ufs/ufshcd.c | 6 +-
drivers/target/target_core_iblock.c | 16 +-
drivers/target/target_core_iblock.h | 2 +-
drivers/target/target_core_pscsi.c | 3 +-
fs/block_dev.c | 24 +-
fs/btrfs/extent_io.c | 25 +-
fs/direct-io.c | 4 +-
fs/exofs/ore.c | 10 +-
fs/exofs/super.c | 2 +-
fs/nfsd/blocklayout.c | 2 +-
fs/xfs/xfs_aops.c | 2 +-
fs/xfs/xfs_aops.h | 2 +-
fs/xfs/xfs_super.c | 11 +-
include/linux/bio.h | 42 +-
include/linux/blk-mq.h | 3 +-
include/linux/blk_types.h | 51 +-
include/linux/blkdev.h | 110 ++--
include/linux/bsg-lib.h | 3 +-
include/linux/bsg.h | 6 +-
include/linux/elevator.h | 2 -
include/linux/fs.h | 2 +-
include/linux/libata.h | 2 -
include/linux/lightnvm.h | 2 +-
include/linux/mempool.h | 34 ++
include/linux/nvme.h | 16 +-
include/linux/pktcdvd.h | 2 +-
include/linux/sbitmap.h | 36 ++
include/scsi/osd_initiator.h | 6 +-
include/scsi/scsi_host.h | 2 +-
kernel/power/swap.c | 14 +-
lib/sbitmap.c | 113 ++--
mm/backing-dev.c | 18 +-
mm/mempool.c | 108 +++-
212 files changed, 4020 insertions(+), 3983 deletions(-)
delete mode 100644 arch/sparc/include/uapi/asm/jsflash.h
rename drivers/nvme/target/{io-cmd.c => io-cmd-bdev.c} (76%)
create mode 100644 drivers/nvme/target/io-cmd-file.c
delete mode 100644 drivers/sbus/char/jsflash.c
--
Jens Axboe