kernel_optimize_test/block
Christoph Hellwig 4569180495 block: fix page leak when merging to same page
When multiple iovecs reference the same page, each get_user_page call
will add a reference to the page.  But once we've created the bio that
information gets lost and only a single reference will be dropped after
I/O completion.  Use the same_page information returned from
__bio_try_merge_page to drop additional references to pages that were
already present in the bio.

Based on a patch from Ming Lei.

Link: https://lkml.org/lkml/2019/4/23/64
Fixes: 576ed913 ("block: use bio_add_page in bio_iov_iter_get_pages")
Reported-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-06-17 09:33:04 -06:00
..
partitions
badblocks.c
bfq-cgroup.c cgroup/bfq: revert bfq.weight symlink change 2019-06-10 03:35:41 -06:00
bfq-iosched.c
bfq-iosched.h
bfq-wf2q.c
bio-integrity.c
bio.c block: fix page leak when merging to same page 2019-06-17 09:33:04 -06:00
blk-cgroup.c block: Drop unlikely before IS_ERR(_OR_NULL) 2019-06-05 08:22:24 -06:00
blk-core.c block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
blk-iolatency.c
blk-lib.c
blk-map.c
blk-merge.c
blk-mq-cpumap.c blk-mq: Document the blk_mq_hw_queue_to_node() arguments 2019-05-31 15:12:34 -06:00
blk-mq-debugfs-zoned.c
blk-mq-debugfs.c blk-mq: no need to check return value of debugfs_create functions 2019-06-13 03:00:30 -06:00
blk-mq-debugfs.h blk-mq: no need to check return value of debugfs_create functions 2019-06-13 03:00:30 -06:00
blk-mq-pci.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq-rdma.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq-sched.c blk-mq: remove WARN_ON(!q->elevator) from blk_mq_sched_free_requests 2019-06-13 03:05:58 -06:00
blk-mq-sched.h block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
blk-mq-sysfs.c
blk-mq-tag.c
blk-mq-tag.h
blk-mq-virtio.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq.c
blk-mq.h
blk-pm.c
blk-pm.h
blk-rq-qos.c block: Fix rq_qos_wait() kernel-doc header 2019-05-31 15:12:34 -06:00
blk-rq-qos.h
blk-settings.c
blk-softirq.c
blk-stat.c
blk-stat.h
blk-sysfs.c block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
blk-throttle.c
blk-timeout.c
blk-wbt.c
blk-wbt.h
blk-zoned.c
blk.h block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
bounce.c
bsg-lib.c block: Fix bsg_setup_queue() kernel-doc header 2019-05-31 15:12:34 -06:00
bsg.c
cmdline-parser.c
compat_ioctl.c
elevator.c block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
genhd.c
ioctl.c
ioprio.c
Kconfig block: force select mq-deadline for zoned block devices 2019-06-13 03:00:31 -06:00
Kconfig.iosched
kyber-iosched.c
Makefile
mq-deadline.c
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c
t10-pi.c