Hi Linus,
First branch of the core and driver block changes for 4.12. This pull
request contains:
- Add BFQ IO scheduler under the new blk-mq scheduling framework. BFQ was
initially a fork of CFQ, but subsequently changed to implement
fairness based on B-WF2Q+, a modified variant of WF2Q. BFQ is meant to
be used on desktop type single drives, providing good fairness. From
Paolo.
- Add Kyber IO scheduler. This is a full multiqueue aware scheduler,
using a scalable token based algorithm that throttles IO based on live
completion IO stats, similary to blk-wbt. From Omar.
- A series from Jan, moving users to separately allocated backing
devices. This continues the work of separating backing device life
times, solving various problems with hot removal.
- A series of updates for lightnvm, mostly from Javier. Includes a
'pblk' target that exposes an open channel SSD as a physical block
device.
- A series of fixes and improvements for nbd from Josef.
- A series from Omar, removing queue sharing between devices on mostly
legacy drivers. This helps us clean up other bits, if we know that a
queue only has a single device backing. This has been overdue for
more than a decade.
- Fixes for the blk-stats, and improvements to unify the stats and user
windows. This both improves blk-wbt, and enables other users to
register a need to receive IO stats for a device. From Omar.
- blk-throttle improvements from Shaohua. This provides a scalable
framework for implementing scalable priotization - particularly for
blk-mq, but applicable to any type of block device. The interface is
marked experimental for now.
- Bucketized IO stats for IO polling from Stephen Bates. This improves
efficiency of polled workloads in the presence of mixed block size IO.
- A few fixes for opal, from Scott.
- A few pulls for NVMe, including a lot of fixes for NVMe-over-fabrics.
From a variety of folks, mostly Sagi and James Smart.
- A series from Bart, improving our exposed info and capabilities from
the blk-mq debugfs support.
- A series from Christoph, cleaning up how handle WRITE_ZEROES.
- A series from Christoph, cleaning up the block layer handling of how
we track errors in a request. On top of being a nice cleanup, it also
shrinks the size of struct request a bit.
- Removal of mg_disk and hd (sorry Linus) by Christoph. The former was
never used by platforms, and the latter has outlived it's usefulness.
- Various little bug fixes and cleanups from a wide variety of folks.
Please pull! There will be a for-4.12/post-merge pull request right
after this one, which adds a few bits that ending up depending on later
changes in your master.
git://git.kernel.dk/linux-block.git for-4.12/block
----------------------------------------------------------------
Adam Manzanares (1):
block: fix inheriting request priority from bio
Arianna Avanzini (4):
block, bfq: add full hierarchical scheduling and cgroups support
block, bfq: add Early Queue Merge (EQM)
block, bfq: reduce idling only in symmetric scenarios
block, bfq: handle bursts of queue activations
Arnd Bergmann (1):
lightnvm: assume 64-bit lba numbers
Bart Van Assche (22):
blk-mq: Remove blk_mq_queue_data.list
blk-mq: Make it safe to use RCU to iterate over blk_mq_tag_set.tag_list
blk-mq: Clarify comments in blk_mq_dispatch_rq_list()
blk-mq: Export queue state through /sys/kernel/debug/block/*/state
blk-mq: Show symbolic names for hctx state and flags
block: Export blk_init_request_from_bio()
null_blk: Use blk_init_request_from_bio() instead of open-coding it
lightnvm: Use blk_init_request_from_bio() instead of open-coding it
block: Inline blk_rq_set_prio()
block: Optimize ioprio_best()
blk-mq: Remove blk_mq_sched_move_to_dispatch()
blk-mq: Fix preempt count imbalance
blk-mq: Register <dev>/queue/mq after having registered <dev>/queue
blk-mq: Let blk_mq_debugfs_register() look up the queue name
blk-mq-debugfs: Rename functions for registering and unregistering the mq
directory
blk-mq: Only unregister hctxs for which registration succeeded
blk-mq: Unregister debugfs attributes earlier
blk-mq: Move the "state" debugfs attribute one level down
blk-mq: Make blk_flags_show() callers append a newline character
blk-mq: Show operation, cmd_flags and rq_flags names
blk-mq: Add blk_mq_ops.show_rq()
scsi: Implement blk_mq_ops.show_rq()
Christoph Hellwig (69):
blk-mq: remove BLK_MQ_F_DEFER_ISSUE
blk-mq: merge mq and sq make_request instances
blk-mq: improve blk_mq_try_issue_directly
blk-mq: split the plug and sync cases in blk_mq_make_request
blk-mq: streamline blk_mq_make_request
nvme-fc: drop ctrl for all command completions
nvme: factor request completion code into a common helper
remove the obsolete hd driver
nvme: move ->retries setup to nvme_setup_cmd
nvme: cleanup nvme_req_needs_retry
nvme: mark nvme_max_retries static
nvme: move the retries count to struct nvme_request
block, scsi: move the retries field to struct scsi_request
sd: split sd_setup_discard_cmnd
block: renumber REQ_OP_WRITE_ZEROES
block: implement splitting of REQ_OP_WRITE_ZEROES bios
sd: implement REQ_OP_WRITE_ZEROES
md: support REQ_OP_WRITE_ZEROES
dm io: discards don't take a payload
dm: support REQ_OP_WRITE_ZEROES
dm kcopyd: switch to use REQ_OP_WRITE_ZEROES
block: stop using blkdev_issue_write_same for zeroing
block: add a flags argument to (__)blkdev_issue_zeroout
block: add a REQ_NOUNMAP flag for REQ_OP_WRITE_ZEROES
block: add a new BLKDEV_ZERO_NOFALLBACK flag
block_dev: use blkdev_issue_zerout for hole punches
sd: implement unmapping Write Zeroes
nvme: implement REQ_OP_WRITE_ZEROES
zram: implement REQ_OP_WRITE_ZEROES
loop: implement REQ_OP_WRITE_ZEROES
brd: remove discard support
rbd: remove the discard_zeroes_data flag
rsxx: remove the discard_zeroes_data flag
mmc: remove the discard_zeroes_data flag
block: stop using discards for zeroing
drbd: make intelligent use of blkdev_issue_zeroout
drbd: implement REQ_OP_WRITE_ZEROES
block: remove the discard_zeroes_data flag
remove the mg_disk driver
block: remove the osdblk driver
block: remove blk_end_request_err and __blk_end_request_err
block: remove blk_end_request_cur
block: make __blk_end_bidi_request private
pd: don't check blk_execute_rq return value.
block: remove the blk_execute_rq return value
nvme-fc: fix status code handling in nvme_fc_fcpio_done
nvme: split nvme status from block req->errors
nvme: make nvme_error_status private
virtio: fix spelling of virtblk_scsi_request_done
virtio_blk: don't use req->errors
scsi: introduce a result field in struct scsi_request
loop: zero-fill bio on the submitting cpu
null_blk: don't pass always-0 req->errors to blk_mq_complete_request
dm rq: don't pass irrelevant error code to blk_mq_complete_request
dm mpath: don't check for req->errors
nbd: don't use req->errors
mtip32xx: add a status field to struct mtip_cmd
xen-blkfront: don't use req->errors
blk-mq: remove the error argument to blk_mq_complete_request
blk-mq: simplify __blk_mq_complete_request
block: add a error_count field to struct request
floppy: switch from req->errors to req->error_count
ataflop: switch from req->errors to req->error_count
swim3: remove (commented out) printing of req->errors
blktrace: remove the unused block_rq_abort tracepoint
block: remove the errors field from struct request
scsi_transport_sas: always pass 0 error to blk_end_request_all
ide-pm: always pass 0 error to __blk_end_request_all
ide-pm: always pass 0 error to ide_complete_rq in ide_do_devset
Christophe JAILLET (1):
lightnvm: Fix error handling
Colin Ian King (2):
block/sed-opal: fix spelling mistake: "Lifcycle" -> "Lifecycle"
block, bfq: don't dereference bic before null checking it
Dan Carpenter (7):
block: make nr_iovecs unsigned in bio_alloc_bioset()
net: off by one in inet6_pton()
lightnvm: pblk-gc: fix an error pointer dereference in init
lightnvm: fix some WARN() messages
lightnvm: fix some error code in pblk-init.c
lightnvm: potential underflow in pblk_read_rq()
lightnvm: don't print a warning for ADDR_EMPTY
Dan Williams (1):
block: hide badblocks attribute by default
Eric Biggers (4):
block: correct documentation for blkdev_issue_discard() flags
block: remove outdated part of blkdev_issue_flush() comment
block: constify struct blk_integrity_profile
blk-mq: constify struct blk_mq_ops
Geliang Tang (2):
block: floppy: use setup_timer
mg_disk: use setup_timer
Helen Koike (1):
nvme: improve performance for virtual NVMe devices
Ilya Dryomov (1):
block: get rid of blk_integrity_revalidate()
James Smart (14):
nvme_fc: Sync FC-NVME header with standard
nvme_fc: Add check of status_code in ERSP_IU
nvmet_fc: Sync NVME LS reject reasons with spec
nvme_fc: correct LS validation
nvmet_fc: Clear SG list to avoid double frees
nvme_fc: Clean up host fcpio done status handling
nvmet_fc: add target feature flags for upcall isr contexts
nvmet_fc: add req_release to lldd api
nvme_fcloop: split job struct from transport for req_release
nvmet_fc: Rework target side abort handling
nvmet_fc: add missing reference in add_port
nvme_fc: Move LS's to rport
nvme_fc: Add ls aborts on remote port teardown
nvmet_fc: Change traddr field separator to a colon
Jan Kara (38):
block: Fix bdi assignment to bdev inode when racing with disk delete
bdi: Mark congested->bdi as internal
bdi: Make wb->bdi a proper reference
bdi: Unify bdi->wb_list handling for root wb_writeback
bdi: Shutdown writeback on all cgwbs in cgwb_bdi_destroy()
bdi: Do not wait for cgwbs release in bdi_unregister()
bdi: Rename cgwb_bdi_destroy() to cgwb_bdi_unregister()
block: Fix oops in locked_inode_to_wb_and_lock_list()
kobject: Export kobject_get_unless_zero()
block: Fix oops scsi_disk_get()
cfq: Disable writeback throttling by default
block: Fix list corruption of blk stats callback list
block: Make writeback throttling defaults consistent for SQ devices
bdi: Provide bdi_register_va() and bdi_alloc()
block: Unregister bdi on last reference drop
bdi: Export bdi_alloc_node() and bdi_put()
fs: Provide infrastructure for dynamic BDIs in filesystems
fs: Get proper reference for s_bdi
lustre: Convert to separately allocated bdi
9p: Convert to separately allocated bdi
btrfs: Convert to separately allocated bdi
ceph: Convert to separately allocated bdi
cifs: Convert to separately allocated bdi
ecryptfs: Convert to separately allocated bdi
afs: Convert to separately allocated bdi
mtd: Convert to dynamically allocated bdi infrastructure
coda: Convert to separately allocated bdi
exofs: Convert to separately allocated bdi
fuse: Convert to separately allocated bdi
fuse: Get rid of bdi_initialized
gfs2: Convert to properly refcounting bdi
nilfs2: Convert to properly refcounting bdi
ncpfs: Convert to separately allocated bdi
nfs: Convert to separately allocated bdi
ubifs: Convert to separately allocated bdi
fs: Remove SB_I_DYNBDI flag
block: Remove unused functions
bdi: Drop 'parent' argument from bdi_register[_va]()
Javier González (17):
lightnvm: submit erases using the I/O path
lightnvm: rename scrambler controller hint
lightnvm: free reverse device map
lightnvm: double-clear of dev->lun_map on target init error
lightnvm: fix cleanup order of disk on init error
lightnvm: bad type conversion for nvme control bits
lightnvm: allow to init targets on factory mode
lightnvm: make nvm_free static
lightnvm: clean unused variable
lightnvm: fix type checks on rrpc
lightnvm: convert sprintf into strlcpy
lightnvm: physical block device (pblk) target
lightnvm: pblk: fix race condition on line retry
lightnvm: pblk: fix bad error check
lightnvm: pblk: fix memory leak on error path
lightnvm: pblk: free metadata on line alloc failure
lightnvm: pblk: fix erase counters on error fail
Jean Delvare (1):
virtio_blk: Fix English description of VIRTIO_BLK_SCSI
Jens Axboe (20):
block: fix stacked driver stats init and free
blk-mq: fix a typo and a spelling mistake
Revert "blkcg: allocate struct blkcg_gq outside request queue spinlock"
blk-mq: include errors in did_work calculation
blk-mq: fix schedule-under-preempt for blocking drivers
null_blk: add blocking mode
block: move timeout field in struct request to pack better
Merge branch 'for-linus' into for-4.12/block
Merge branch 'stable/for-jens-4.12' of
git://git.kernel.org/.../konrad/xen into for-4.12/block
bfq: fix compile error if CONFIG_CGROUPS=n
blk-throttle: fix unused variable warning with BLK_DEV_THROTTLING_LOW=n
blk-mq: fix schedule-while-atomic with scheduler attached
blk-mq: add might_sleep check to blk_mq_get_driver_tag()
blk-stat: kill blk_stat_rq_ddir()
mtip32xx: fix dereference of stack garbage
Merge branch 'nvme-4.12' of git://git.infradead.org/nvme into
for-4.12/block
blk-mq-sched: alloate reserved tags out of normal pool
blk-mq: unify hctx delayed_run_work and run_work
block: add kblock_mod_delayed_work_on()
blk-mq: unify hctx delay_work and run_work
Josef Bacik (16):
block-mq: don't re-queue if we get a queue error
nbd: put socket in error cases
nbd: handle single path failures gracefully
nbd: separate out the config information
nbd: stop using the bdev everywhere
nbd: add a basic netlink interface
nbd: add a reconfigure netlink command
nbd: multicast dead link notifications
nbd: only clear the queue on device teardown
nbd: handle dead connections
nbd: add a status netlink command
nbd: add device refcounting
nbd: add a flag to destroy an nbd device on disconnect
nbd: set the max segment size to UINT_MAX
nbd: set the max segments to USHRT_MAX
nbd: fix use after free on module unload
Junxiong Guan (1):
nvme: let dm-mpath distinguish nvme error codes
Keith Busch (2):
nvme/pci: Don't set reserved SQ create flags
nvme/pci: Poll CQ on timeout
Logan Gunthorpe (1):
nvmet: convert from kmap to nvmet_copy_from_sgl
Marc Olson (1):
blkfront: add uevent for size change
Martin K. Petersen (2):
scsi: sd: Separate zeroout and discard command choices
scsi: sd: Remove LBPRZ dependency for discards
Matias Bjørling (1):
lightnvm: enable nvme size compile asserts
Max Gurtovoy (1):
nvmet: use symbolic constants for log identifiers
Mike Snitzer (1):
block: fix blk_integrity_register to use template's interval_exp if not 0
Minchan Kim (1):
block: do not put mq context in blk_mq_alloc_request_hctx
Ming Lei (6):
blk-mq: don't complete un-started request in timeout handler
blk-mq: comment on races related with timeout handler
block: add a read barrier in blk_queue_enter()
block: rename blk_mq_freeze_queue_start()
block: block new I/O just after queue is set as dying
mtip32xx: use runtime tag to initialize command header
NeilBrown (3):
block: simple improvements for bio->flags
block: trace completion of all bios.
lightnvm: don't check for failure from mempool_alloc()
Omar Sandoval (22):
blk-stat: fix blk_stat_sum() if all samples are batched
block: remove extra calls to wbt_exit()
blk-stat: use READ and WRITE instead of BLK_STAT_{READ,WRITE}
blk-stat: move BLK_RQ_STAT_BATCH definition to blk-stat.c
blk-stat: convert to callback-based statistics reporting
hd: stop sharing request queue across multiple gendisks
parport/pd: stop sharing request queue across multiple gendisks
parport/pcd: stop sharing request queue across multiple gendisks
parport/pf: stop sharing request queue across multiple gendisks
swim: stop sharing request queue across multiple gendisks
jsflash: stop sharing request queue across multiple gendisks
block: warn if sharing request queue across gendisks
blk-mq: fix leak of q->stats
block: fix leak of q->rq_wb
blk-mq-sched: provide hooks for initializing hardware queue data
blk-mq: make driver tag failure path easier to follow
blk-mq: use true instead of 1 for blk_mq_queue_data.last
sbitmap: add sbitmap_get_shallow() operation
blk-mq: add shallow depth option for blk_mq_get_tag()
blk-mq: export helpers
blk-mq-sched: make completed_request() callback more useful
blk-mq: introduce Kyber multiqueue I/O scheduler
Paolo Valente (12):
block, bfq: introduce the BFQ-v0 I/O scheduler as an extra scheduler
block, bfq: improve throughput boosting
block, bfq: modify the peak-rate estimator
block, bfq: add more fairness with writes and slow processes
block, bfq: improve responsiveness
block, bfq: reduce I/O latency for soft real-time applications
block, bfq: preserve a low latency also with NCQ-capable drives
block, bfq: reduce latency during request-pool saturation
block, bfq: boost the throughput on NCQ-capable flash-based devices
block, bfq: boost the throughput with random I/O on NCQ-capable HDDs
block, bfq: remove all get and put of I/O contexts
block, bfq: split bfq-iosched.c into multiple source files
Parav Pandit (2):
nvmet: Fixed avoided printing nvmet: twice in error logs.
nvmet: Introduced helper routine for controller status check.
Rakesh Pandit (2):
ligtnvm: fix double blk_put_queue on same queue
lightnvm: propagate pblk_init return to userspace
Sagi Grimberg (24):
blk-mq-pci: Fix two spelling mistakes
nvme-loop: fix a possible use-after-free when destroying the admin queue
nvme-loop: handle cpu unplug when re-establishing the controller
nvmet: confirm sq percpu has scheduled and switched to atomic
nvmet-rdma: Fix a possible uninitialized variable dereference
nvme-rdma: handle cpu unplug when re-establishing the controller
nvmet-rdma: occasionally flush ongoing controller teardown
nvme-rdma: Give some more grace for rdma connection establishment
nvme-loop: remove some code duplication
net/utils: generic inet_pton_with_scope helper
nvmet-rdma: use generic inet_pton_with_scope
nvme-rdma: use inet_pton_with_scope helper
iscsi-target: use generic inet_pton_with_scope
nvme-rdma: fix module_init (theoretical) error path
nvme-loop: fix module_init (theoretical) error path
nvme-fc: fix module_init (theoretical) error path
nvme-loop: remove unneeded includes
nvme-loop: retrieve iod from the cqe command_id
nvme-rdma: get rid of local reconnect_delay
nvme-fabrics: Allow ctrl loss timeout configuration
nvme-rdma: Support ctrl_loss_tmo
nvme-rdma: increment request retries counter before requeuing
nvme-loop: increment request retries counter before requeuing
nvme-fc: increment request retries counter before requeuing
Scott Bauer (2):
block: sed-opal: Tone down all the pr_* to debugs
nvme/lightnvm: Prevent small buffer overflow in nvme_nvm_identify
Shaohua Li (19):
blk-throttle: use U64_MAX/UINT_MAX to replace -1
blk-throttle: prepare support multiple limits
blk-throttle: add configure option for new .low interface
blk-throttle: add .low interface
blk-throttle: configure bps/iops limit for cgroup in low limit
blk-throttle: add upgrade logic for LIMIT_LOW state
blk-throttle: add downgrade logic
blk-throttle: make sure expire time isn't too big
blk-throttle: make throtl_slice tunable
blk-throttle: choose a small throtl_slice for SSD
blk-throttle: detect completed idle cgroup
blk-throttle: make bandwidth change smooth
blk-throttle: add a simple idle detection
blk-throttle: add interface to configure idle time threshold
blk-throttle: ignore idle cgroup limit
blk-throttle: add interface for per-cgroup target latency
block: track request size in blk_issue_stat
blk-throttle: add a mechanism to estimate IO latency
blk-throttle: add latency target support
Stephen Bates (3):
blk-stat: convert blk-stat bucket callback to signed
blk-mq: Add a polling specific stats function
blk-mq: Fix poll_stat for new size-based bucketing.
Tahsin Erdogan (2):
blkcg: allocate struct blkcg_gq outside request queue spinlock
blkcg: allocate struct blkcg_gq outside request queue spinlock
Ulf Hansson (1):
MAINTAINERS: bfq: Add Paolo as maintainer for the BFQ I/O scheduler
Wei Yongjun (1):
lightnvm: fix possible memory leak in pblk_bb_discovery()
Documentation/ABI/testing/sysfs-block | 10 +-
Documentation/block/00-INDEX | 2 +
Documentation/block/bfq-iosched.txt | 531 ++
Documentation/block/kyber-iosched.txt | 14 +
Documentation/block/queue-sysfs.txt | 11 +-
Documentation/blockdev/mflash.txt | 84 -
Documentation/lightnvm/pblk.txt | 21 +
MAINTAINERS | 8 +
block/Kconfig | 12 +
block/Kconfig.iosched | 30 +
block/Makefile | 3 +
block/bfq-cgroup.c | 1139 +++++
block/bfq-iosched.c | 5047 ++++++++++++++++++++
block/bfq-iosched.h | 941 ++++
block/bfq-wf2q.c | 1616 +++++++
block/bio.c | 19 +-
block/blk-cgroup.c | 123 +-
block/blk-core.c | 143 +-
block/blk-exec.c | 11 +-
block/blk-flush.c | 5 +-
block/blk-integrity.c | 24 +-
block/blk-lib.c | 78 +-
block/blk-merge.c | 17 +-
block/blk-mq-debugfs.c | 331 +-
block/blk-mq-pci.c | 2 +-
block/blk-mq-sched.c | 103 +-
block/blk-mq-sched.h | 18 +-
block/blk-mq-sysfs.c | 61 +-
block/blk-mq-tag.c | 5 +-
block/blk-mq.c | 565 +--
block/blk-mq.h | 16 +-
block/blk-settings.c | 3 -
block/blk-stat.c | 323 +-
block/blk-stat.h | 204 +-
block/blk-sysfs.c | 82 +-
block/blk-throttle.c | 985 +++-
block/blk-timeout.c | 1 -
block/blk-wbt.c | 95 +-
block/blk-wbt.h | 16 +-
block/blk.h | 15 +-
block/bsg-lib.c | 8 +-
block/bsg.c | 12 +-
block/cfq-iosched.c | 17 +-
block/compat_ioctl.c | 2 +-
block/elevator.c | 3 +
block/genhd.c | 13 +-
block/ioctl.c | 4 +-
block/ioprio.c | 12 +-
block/kyber-iosched.c | 719 +++
block/partition-generic.c | 1 -
block/scsi_ioctl.c | 23 +-
block/sed-opal.c | 153 +-
block/t10-pi.c | 8 +-
drivers/block/Kconfig | 47 +-
drivers/block/Makefile | 3 -
drivers/block/ataflop.c | 12 +-
drivers/block/brd.c | 54 -
drivers/block/cciss.c | 42 +-
drivers/block/drbd/drbd_debugfs.c | 3 -
drivers/block/drbd/drbd_int.h | 6 -
drivers/block/drbd/drbd_main.c | 5 +-
drivers/block/drbd/drbd_nl.c | 9 +-
drivers/block/drbd/drbd_receiver.c | 105 +-
drivers/block/drbd/drbd_req.c | 13 +-
drivers/block/drbd/drbd_worker.c | 4 +-
drivers/block/floppy.c | 10 +-
drivers/block/hd.c | 803 ----
drivers/block/loop.c | 38 +-
drivers/block/loop.h | 1 +
drivers/block/mg_disk.c | 1112 -----
drivers/block/mtip32xx/mtip32xx.c | 58 +-
drivers/block/mtip32xx/mtip32xx.h | 1 +
drivers/block/nbd.c | 1417 +++++-
drivers/block/null_blk.c | 22 +-
drivers/block/osdblk.c | 693 ---
drivers/block/paride/pcd.c | 57 +-
drivers/block/paride/pd.c | 57 +-
drivers/block/paride/pf.c | 57 +-
drivers/block/pktcdvd.c | 2 +-
drivers/block/rbd.c | 3 +-
drivers/block/rsxx/dev.c | 1 -
drivers/block/swim.c | 55 +-
drivers/block/swim3.c | 4 +-
drivers/block/virtio_blk.c | 21 +-
drivers/block/xen-blkfront.c | 41 +-
drivers/block/zram/zram_drv.c | 13 +-
drivers/cdrom/cdrom.c | 3 +-
drivers/ide/ide-atapi.c | 11 +-
drivers/ide/ide-cd.c | 21 +-
drivers/ide/ide-cd_ioctl.c | 3 +-
drivers/ide/ide-devsets.c | 8 +-
drivers/ide/ide-disk.c | 3 +-
drivers/ide/ide-dma.c | 2 +-
drivers/ide/ide-eh.c | 36 +-
drivers/ide/ide-floppy.c | 10 +-
drivers/ide/ide-io.c | 10 +-
drivers/ide/ide-ioctls.c | 7 +-
drivers/ide/ide-park.c | 3 +-
drivers/ide/ide-pm.c | 9 +-
drivers/ide/ide-tape.c | 4 +-
drivers/ide/ide-taskfile.c | 8 +-
drivers/lightnvm/Kconfig | 9 +
drivers/lightnvm/Makefile | 5 +
drivers/lightnvm/core.c | 147 +-
drivers/lightnvm/pblk-cache.c | 114 +
drivers/lightnvm/pblk-core.c | 1667 +++++++
drivers/lightnvm/pblk-gc.c | 555 +++
drivers/lightnvm/pblk-init.c | 962 ++++
drivers/lightnvm/pblk-map.c | 136 +
drivers/lightnvm/pblk-rb.c | 852 ++++
drivers/lightnvm/pblk-read.c | 529 ++
drivers/lightnvm/pblk-recovery.c | 998 ++++
drivers/lightnvm/pblk-rl.c | 184 +
drivers/lightnvm/pblk-sysfs.c | 507 ++
drivers/lightnvm/pblk-write.c | 414 ++
drivers/lightnvm/pblk.h | 1121 +++++
drivers/lightnvm/rrpc.c | 25 +-
drivers/md/dm-cache-target.c | 1 -
drivers/md/dm-core.h | 1 +
drivers/md/dm-crypt.c | 1 -
drivers/md/dm-io.c | 18 +-
drivers/md/dm-kcopyd.c | 6 +-
drivers/md/dm-linear.c | 1 +
drivers/md/dm-mpath.c | 3 +-
drivers/md/dm-raid.c | 6 +-
drivers/md/dm-raid1.c | 1 -
drivers/md/dm-rq.c | 15 +-
drivers/md/dm-stripe.c | 2 +
drivers/md/dm-table.c | 49 +-
drivers/md/dm-thin.c | 2 -
drivers/md/dm.c | 32 +-
drivers/md/linear.c | 1 +
drivers/md/md.h | 7 +
drivers/md/multipath.c | 1 +
drivers/md/raid0.c | 2 +
drivers/md/raid1.c | 4 +-
drivers/md/raid10.c | 1 +
drivers/md/raid5.c | 53 +-
drivers/mmc/core/queue.c | 2 -
drivers/mtd/mtdcore.c | 23 +-
drivers/mtd/mtdsuper.c | 6 +-
drivers/mtd/ubi/block.c | 2 +-
drivers/nvme/host/core.c | 94 +-
drivers/nvme/host/fabrics.c | 28 +
drivers/nvme/host/fabrics.h | 10 +
drivers/nvme/host/fc.c | 223 +-
drivers/nvme/host/lightnvm.c | 49 +-
drivers/nvme/host/nvme.h | 48 +-
drivers/nvme/host/pci.c | 223 +-
drivers/nvme/host/rdma.c | 154 +-
drivers/nvme/target/admin-cmd.c | 31 +-
drivers/nvme/target/core.c | 21 +-
drivers/nvme/target/discovery.c | 19 +-
drivers/nvme/target/fabrics-cmd.c | 36 +-
drivers/nvme/target/fc.c | 274 +-
drivers/nvme/target/fcloop.c | 197 +-
drivers/nvme/target/io-cmd.c | 24 +-
drivers/nvme/target/loop.c | 92 +-
drivers/nvme/target/nvmet.h | 11 +-
drivers/nvme/target/rdma.c | 47 +-
drivers/sbus/char/jsflash.c | 50 +-
drivers/scsi/Makefile | 1 +
drivers/scsi/lpfc/lpfc_nvmet.c | 126 +-
drivers/scsi/lpfc/lpfc_nvmet.h | 7 +-
drivers/scsi/osd/osd_initiator.c | 9 +-
drivers/scsi/osst.c | 4 +-
drivers/scsi/qla2xxx/qla_bsg.c | 6 +-
drivers/scsi/scsi_debugfs.c | 13 +
drivers/scsi/scsi_debugfs.h | 4 +
drivers/scsi/scsi_error.c | 2 +-
drivers/scsi/scsi_lib.c | 25 +-
drivers/scsi/scsi_transport_sas.c | 4 +-
drivers/scsi/sd.c | 259 +-
drivers/scsi/sd.h | 8 +
drivers/scsi/sd_zbc.c | 1 +
drivers/scsi/sg.c | 4 +-
drivers/scsi/st.c | 8 +-
.../staging/lustre/lustre/include/lustre_disk.h | 4 -
drivers/staging/lustre/lustre/llite/llite_lib.c | 24 +-
drivers/target/iscsi/iscsi_target_configfs.c | 46 +-
drivers/target/target_core_device.c | 2 +-
drivers/target/target_core_pscsi.c | 4 +-
fs/9p/v9fs.c | 10 +-
fs/9p/v9fs.h | 1 -
fs/9p/vfs_super.c | 15 +-
fs/afs/internal.h | 1 -
fs/afs/super.c | 5 +-
fs/afs/volume.c | 8 -
fs/block_dev.c | 28 +-
fs/btrfs/ctree.h | 1 -
fs/btrfs/disk-io.c | 36 +-
fs/btrfs/super.c | 7 +
fs/ceph/addr.c | 6 +-
fs/ceph/debugfs.c | 2 +-
fs/ceph/super.c | 35 +-
fs/ceph/super.h | 2 -
fs/cifs/cifs_fs_sb.h | 1 -
fs/cifs/cifsfs.c | 7 +-
fs/cifs/connect.c | 10 -
fs/coda/inode.c | 11 +-
fs/dax.c | 2 +-
fs/ecryptfs/ecryptfs_kernel.h | 1 -
fs/ecryptfs/main.c | 4 +-
fs/exofs/exofs.h | 1 -
fs/exofs/super.c | 17 +-
fs/fuse/dev.c | 13 +-
fs/fuse/fuse_i.h | 6 -
fs/fuse/inode.c | 42 +-
fs/gfs2/ops_fstype.c | 8 +-
fs/ncpfs/inode.c | 8 +-
fs/ncpfs/ncp_fs_sb.h | 1 -
fs/nfs/client.c | 10 -
fs/nfs/internal.h | 6 +-
fs/nfs/super.c | 33 +-
fs/nfs/write.c | 13 +-
fs/nfsd/blocklayout.c | 7 +-
fs/nilfs2/super.c | 2 +-
fs/super.c | 53 +-
fs/ubifs/super.c | 25 +-
fs/ubifs/ubifs.h | 3 -
fs/xfs/xfs_bmap_util.c | 2 +-
include/linux/backing-dev-defs.h | 8 +-
include/linux/backing-dev.h | 16 +-
include/linux/bio.h | 2 +-
include/linux/blk-mq.h | 21 +-
include/linux/blk_types.h | 47 +-
include/linux/blkdev.h | 76 +-
include/linux/coda_psdev.h | 1 -
include/linux/device-mapper.h | 11 +-
include/linux/elevator.h | 4 +-
include/linux/fs.h | 3 +
include/linux/genhd.h | 12 +-
include/linux/ide.h | 2 +-
include/linux/inet.h | 6 +
include/linux/kobject.h | 2 +
include/linux/lightnvm.h | 13 +-
include/linux/mg_disk.h | 45 -
include/linux/mtd/mtd.h | 5 -
include/linux/nfs_fs_sb.h | 1 -
include/linux/nvme-fc-driver.h | 104 +-
include/linux/nvme-fc.h | 68 +-
include/linux/nvme.h | 13 +
include/linux/sbitmap.h | 55 +
include/linux/t10-pi.h | 8 +-
include/linux/writeback.h | 1 +
include/scsi/scsi_request.h | 2 +
include/trace/events/block.h | 61 +-
include/uapi/linux/lightnvm.h | 4 +
include/uapi/linux/nbd-netlink.h | 98 +
include/uapi/linux/nbd.h | 6 +-
kernel/trace/blktrace.c | 35 +-
lib/kobject.c | 5 +-
lib/sbitmap.c | 75 +-
mm/backing-dev.c | 186 +-
net/core/utils.c | 103 +
255 files changed, 24643 insertions(+), 6152 deletions(-)
create mode 100644 Documentation/block/bfq-iosched.txt
create mode 100644 Documentation/block/kyber-iosched.txt
delete mode 100644 Documentation/blockdev/mflash.txt
create mode 100644 Documentation/lightnvm/pblk.txt
create mode 100644 block/bfq-cgroup.c
create mode 100644 block/bfq-iosched.c
create mode 100644 block/bfq-iosched.h
create mode 100644 block/bfq-wf2q.c
create mode 100644 block/kyber-iosched.c
delete mode 100644 drivers/block/hd.c
delete mode 100644 drivers/block/mg_disk.c
delete mode 100644 drivers/block/osdblk.c
create mode 100644 drivers/lightnvm/pblk-cache.c
create mode 100644 drivers/lightnvm/pblk-core.c
create mode 100644 drivers/lightnvm/pblk-gc.c
create mode 100644 drivers/lightnvm/pblk-init.c
create mode 100644 drivers/lightnvm/pblk-map.c
create mode 100644 drivers/lightnvm/pblk-rb.c
create mode 100644 drivers/lightnvm/pblk-read.c
create mode 100644 drivers/lightnvm/pblk-recovery.c
create mode 100644 drivers/lightnvm/pblk-rl.c
create mode 100644 drivers/lightnvm/pblk-sysfs.c
create mode 100644 drivers/lightnvm/pblk-write.c
create mode 100644 drivers/lightnvm/pblk.h
create mode 100644 drivers/scsi/scsi_debugfs.c
create mode 100644 drivers/scsi/scsi_debugfs.h
delete mode 100644 include/linux/mg_disk.h
create mode 100644 include/uapi/linux/nbd-netlink.h
--
Jens Axboe