[GIT PULL] Core block IO bits for 3.19

From: Jens Axboe
Date: Fri Dec 12 2014 - 22:02:39 EST

Hi Linus,

This is the pull request for the core block IO changes for 3.19. Not a
huge round this time, mostly lots of little good fixes. The pull request

- Fix a bug in sysfs blktrace interface causing a NULL pointer
dereference, when enabled/disabled through that API. From Arianna

- Various updates/fixes/improvements for blk-mq:

- A set of updates from Bart, mostly fixing buts in the tag

- Cleanup/code consolidation from Christoph.

- Extend queue_rq API to be able to handle batching issues of IO
requests. NVMe will utilize this shortly. From me.

- A few tag and request handling updates from me.

- Cleanup of the preempt handling for running queues from Paolo.

- Prevent running of unmapped hardware queues from Ming Lei.

- Move the kdump memory limiting check to be in the correct
location, from Shaohua.

- Initialize all software queues at init time from Takashi. This
prevents a kobject warning when CPUs are brought online that
weren't online when a queue was registered.

- Single writeback fix for I_DIRTY clearing from Tejun. Queued with the
core IO changes, since it's just a single fix.

- Version X of the __bio_add_page() segment addition retry from
Maurizio. Hope the Xth time is the charm.

- Documentation fixup for IO scheduler merging from Jan.

- Introduce (and use) generic IO stat accounting helpers for non-rq
drivers, from Gu Zheng.

- Kill off artificial limiting of max sectors in a request from

Please pull!

git://git.kernel.dk/linux-block.git for-3.19/core

Arianna Avanzini (1):
blktrace: don't let the sysfs interface remove trace from running list

Bart Van Assche (6):
blk-mq: fix hang in bt_get()
blk-mq: Fix a use-after-free
blk-mq: Avoid that __bt_get_word() wraps multiple times
blk-mq: Fix a race between bt_clear_tag() and bt_get()
blk-mq: Micro-optimize bt_get()
blk-mq: Use all available hardware queues

Christoph Hellwig (2):
block: remove artifical max_hw_sectors cap
blk-mq: handle the single queue case in blk_mq_hctx_next_cpu

Gu Zheng (1):
blk: introduce generic io stat accounting help function

Jan Kara (1):
block: Expand a bit documentation about elevator_allow_merge_fn

Jens Axboe (8):
blk-mq: add a 'list' parameter to ->queue_rq()
blk-mq: add BLK_MQ_F_DEFER_ISSUE support flag
blk-mq: export blk_mq_free_request()
blk-mq: add blk_mq_free_hctx_request()
genhd: check for int overflow in disk_expand_part_tbl()
blk-mq: use 'nr_cpu_ids' as highest CPU ID count for hwq <-> cpu map
blk-mq: cleanup tag free handling
blk-mq: re-check for available tags after running the hardware queue

Maurizio Lombardi (1):
bio: modify __bio_add_page() to accept pages that don't start a new segment

Ming Lei (1):
blk-mq: prevent unmapped hw queue from being scheduled

Paolo Bonzini (2):
blk_mq: call preempt_disable/enable in blk_mq_run_hw_queue, and only if needed
blk-mq: use get_cpu/put_cpu instead of preempt_disable/preempt_enable

Shaohua Li (1):
blk-mq: move the kdump check to blk_mq_alloc_tag_set

Takashi Iwai (1):
blk-mq: Fix uninitialized kobject at CPU hotplugging

Tejun Heo (1):
writeback: fix a subtle race condition in I_DIRTY clearing

Documentation/block/biodoc.txt | 6 +-
block/bio.c | 82 +++++++++++++++++--------
block/blk-core.c | 3 +
block/blk-mq-cpumap.c | 4 +-
block/blk-mq-sysfs.c | 9 ++-
block/blk-mq-tag.c | 60 +++++++++---------
block/blk-mq.c | 126 ++++++++++++++++++++++++--------------
block/blk-mq.h | 5 ++
block/blk-settings.c | 4 +-
block/blk-sysfs.c | 12 ++--
block/genhd.c | 11 +++-
drivers/block/aoe/aoeblk.c | 2 +-
drivers/block/mtip32xx/mtip32xx.c | 5 +-
drivers/block/null_blk.c | 10 +--
drivers/block/virtio_blk.c | 7 ++-
drivers/scsi/scsi_lib.c | 5 +-
fs/fs-writeback.c | 29 ++++++---
include/linux/bio.h | 5 ++
include/linux/blk-mq.h | 10 ++-
include/linux/blkdev.h | 1 -
kernel/trace/blktrace.c | 3 -
21 files changed, 254 insertions(+), 145 deletions(-)

Jens Axboe

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/