Ming Lei
beb0a21d2c
block: don't use bio->bi_vcnt to figure out segment number
...
[ Upstream commit 1a67356e9a4829da2935dd338630a550c59c8489 ]
It is wrong to use bio->bi_vcnt to figure out how many segments
there are in the bio even though CLONED flag isn't set on this bio,
because this bio may be splitted or advanced.
So always use bio_segments() in blk_recount_segments(), and it shouldn't
cause any performance loss now because the physical segment number is figured
out in blk_queue_split() and BIO_SEG_VALID is set meantime since
bdced438ac ("block: setup bi_phys_segments after splitting").
Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Fixes: 76d8137a31 ("blk-merge: recaculate segment if it isn't less than max segments")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-29 10:24:15 +01:00
..
partitions
partitions/aix: fix usage of uninitialized lv_info and lvname structures
2018-09-19 22:47:15 +02:00
badblocks.c
badblocks: fix wrong return value in badblocks_set if badblocks are disabled
2017-12-20 10:07:29 +01:00
bio-integrity.c
bio-integrity: Do not allocate integrity context for bio w/o data
2018-04-13 19:48:18 +02:00
bio.c
block: do not leak memory in bio_copy_user_iov()
2019-04-17 08:36:46 +02:00
blk-cgroup.c
block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
2018-09-19 22:47:11 +02:00
blk-core.c
block: blk_init_allocated_queue() set q->fq as NULL in the fail case
2019-08-11 12:22:18 +02:00
blk-exec.c
block: Fix spelling in a source code comment
2016-07-20 21:28:22 -06:00
blk-flush.c
block: flush: fix IO hang in case of flood fua req
2016-10-26 07:49:27 -06:00
blk-integrity.c
block: fix blk_integrity_register to use template's interval_exp if not 0
2017-05-20 14:28:36 +02:00
blk-ioc.c
mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
2015-11-06 17:50:42 -08:00
blk-lib.c
block: fix infinite loop if the device loses discard capability
2018-12-29 13:40:14 +01:00
blk-map.c
block: fix memleak when __blk_rq_map_user_iov() is failed
2020-01-12 11:24:24 +01:00
blk-merge.c
block: don't use bio->bi_vcnt to figure out segment number
2020-01-29 10:24:15 +01:00
blk-mq-cpumap.c
blk-mq: allow the driver to pass in a queue mapping
2016-09-15 08:42:03 -06:00
blk-mq-pci.c
blk-mq-pci: add a fallback when pci_irq_get_affinity returns NULL
2017-08-24 17:12:20 -07:00
blk-mq-sysfs.c
blk-mq: make sure that line break can be printed
2019-12-21 10:42:18 +01:00
blk-mq-tag.c
blk-mq: Fix tagset reinit in the presence of cpu hot-unplug
2017-12-20 10:07:20 +01:00
blk-mq-tag.h
Merge branch 'for-4.9/block-irq' of git://git.kernel.dk/linux-block
2016-10-09 17:29:33 -07:00
blk-mq.c
block/mq: fix potential deadlock during cpu hotplug
2018-04-24 09:34:18 +02:00
blk-mq.h
blk-mq: initialize mq kobjects in blk_mq_init_allocated_queue()
2017-12-14 09:28:21 +01:00
blk-settings.c
block: fix an integer overflow in logical block size
2020-01-23 08:19:38 +01:00
blk-softirq.c
This adds a new gcc plugin named "latent_entropy". It is designed to
2016-10-15 10:03:15 -07:00
blk-sysfs.c
blk-mq: register device instead of disk
2016-09-21 07:56:16 -06:00
blk-tag.c
block: support different tag allocation policy
2015-01-23 14:15:46 -07:00
blk-throttle.c
blk-throttle: make sure expire time isn't too big
2018-03-22 09:17:44 +01:00
blk-timeout.c
block: Fix a race between blk_cleanup_queue() and timeout handling
2017-11-30 08:39:06 +00:00
blk.h
blk-mq: remove ->map_queue
2016-09-15 08:42:03 -06:00
bounce.c
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2015-09-19 18:57:09 -07:00
bsg-lib.c
Revert "bsg-lib: don't free job in bsg_prepare_job"
2017-10-21 17:21:33 +02:00
bsg.c
sg_write()/bsg_write() is not fit to be called under KERNEL_DS
2017-01-09 08:32:25 +01:00
cfq-iosched.c
block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
2018-09-19 22:47:11 +02:00
cmdline-parser.c
block: remove unrelated header files and export symbol
2014-01-21 20:18:26 -08:00
compat_ioctl.c
compat_ioctl: block: handle Persistent Reservations
2020-01-12 11:24:13 +01:00
deadline-iosched.c
block: do not merge requests without consulting with io scheduler
2016-07-20 21:35:12 -06:00
elevator.c
block: Fix secure erase
2016-08-16 09:16:51 -06:00
genhd.c
block: fix bdi vs gendisk lifetime mismatch
2016-08-04 14:19:16 -06:00
ioctl.c
block: invalidate the page cache when issuing BLKZEROOUT
2016-10-11 15:06:30 -07:00
ioprio.c
block: fix use-after-free in sys_ioprio_get()
2016-07-01 08:39:24 -06:00
Kconfig
Merge branch 'for-4.9/block-irq' of git://git.kernel.dk/linux-block
2016-10-09 17:29:33 -07:00
Kconfig.iosched
blkcg: make CONFIG_BLK_CGROUP bool
2012-03-06 21:27:21 +01:00
Makefile
Merge branch 'for-4.9/block-smp' of git://git.kernel.dk/linux-block
2016-10-09 17:32:20 -07:00
noop-iosched.c
elevator: use list_{first,prev,next}_entry
2015-11-16 15:21:48 -07:00
partition-generic.c
block: fix an error code in add_partition()
2018-04-13 19:48:04 +02:00
scsi_ioctl.c
block: allow WRITE_SAME commands with the SG_IO ioctl
2017-03-22 12:43:38 +01:00
t10-pi.c
block: Consolidate static integrity profile properties
2015-10-21 14:42:38 -06:00