Re: [PATCH v2] blk: improve order of bio handling in generic_make_request()
From: NeilBrown
Date: Thu Mar 09 2017 - 23:33:06 EST
I started looking further at the improvements we can make once
generic_make_request is fixed, and realised that I had missed an
important detail in this patch.
Several places test current->bio_list, and two actually edit the list.
With this change, that cannot see the whole lists, so it could cause a
regression.
So I've revised the patch to make sure that the entire list of queued
bios remains visible, and change the relevant code to look at both
the new list and the old list.
Following that there are some patches which make the rescuer thread
optional, and then starts removing it from some easy-to-fix places.
The series summary is below.
NeilBrown
NeilBrown (5):
blk: improve order of bio handling in generic_make_request()
blk: remove bio_set arg from blk_queue_split()
blk: make the bioset rescue_workqueue optional.
blk: use non-rescuing bioset for q->bio_split.
block_dev: make blkdev_dio_pool a non-rescuing bioset
block/bio.c | 39 +++++++++++++++++++++++++++------
block/blk-core.c | 42 ++++++++++++++++++++++++++++-------
block/blk-merge.c | 7 +++---
block/blk-mq.c | 4 ++-
drivers/block/drbd/drbd_main.c | 2 +-
drivers/block/drbd/drbd_req.c | 2 +-
drivers/block/pktcdvd.c | 2 +-
drivers/block/ps3vram.c | 2 +-
drivers/block/rsxx/dev.c | 2 +-
drivers/block/umem.c | 2 +-
drivers/block/zram/zram_drv.c | 2 +-
drivers/lightnvm/rrpc.c | 2 +-
drivers/md/bcache/super.c | 4 ++-
drivers/md/dm-crypt.c | 2 +-
drivers/md/dm-io.c | 2 +-
drivers/md/dm.c | 32 +++++++++++++++------------
drivers/md/md.c | 4 ++-
drivers/md/raid10.c | 3 ++-
drivers/md/raid5-cache.c | 2 +-
drivers/s390/block/dcssblk.c | 2 +-
drivers/s390/block/xpram.c | 2 +-
drivers/target/target_core_iblock.c | 2 +-
fs/btrfs/extent_io.c | 4 ++-
fs/xfs/xfs_super.c | 2 +-
include/linux/bio.h | 2 ++
include/linux/blkdev.h | 3 +--
26 files changed, 114 insertions(+), 60 deletions(-)
Attachment:
signature.asc
Description: PGP signature