Adrian Hunter
f281fb5fe5
block: prevent merges of discard and write requests
...
Add logic to prevent two I/O requests being merged if
only one of them is a discard. Ditto secure discard.
Without this fix, it is possible for write requests
to transform into discard requests. For example:
Submit bio 1 to discard 8 sectors from sector n
Submit bio 2 to write 8 sectors from sector n + 16
Submit bio 3 to write 8 sectors from sector n + 8
Bio 1 becomes request 1. Bio 2 becomes request 2.
Bio 3 is merged with request 2, and then subsequently
request 2 is merged with request 1 resulting in just
one I/O request which discards all 24 sectors.
Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
(Moved the checks above the position checks /Jens)
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2010-09-25 12:42:55 +02:00
..
blk-barrier.c
block: set up rq->rq_disk properly for flush requests
2010-08-07 18:52:41 +02:00
blk-cgroup.c
blkio: Fix return code for mkdir calls
2010-08-23 10:56:30 +02:00
blk-cgroup.h
blk-cgroup: config options re-arrangement
2010-04-26 19:27:56 +02:00
blk-core.c
BLOCK: fix bio.bi_rw handling
2010-08-23 12:33:10 +02:00
blk-exec.c
block: remove wrappers for request type/flags
2010-08-07 18:17:56 +02:00
blk-integrity.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
blk-ioc.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
blk-iopoll.c
blk-lib.c
block: add secure discard
2010-08-12 08:43:30 -07:00
blk-map.c
block: fix blk_rq_map_kern bio direction flag
2010-09-21 11:49:17 +02:00
blk-merge.c
block: prevent merges of discard and write requests
2010-09-25 12:42:55 +02:00
blk-settings.c
block: implement an unprep function corresponding directly to prep
2010-08-07 18:23:47 +02:00
blk-softirq.c
blk-sysfs.c
block: put dev->kobj in blk_register_queue fail path
2010-08-23 12:30:29 +02:00
blk-tag.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
blk-timeout.c
block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer
2010-04-21 17:42:08 +02:00
blk.h
block: Range check cpu in blk_cpu_to_group
2010-09-10 09:03:21 +02:00
bsg.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
cfq-iosched.c
cfq-iosched: fix a kernel OOPs when usb key is inserted
2010-09-21 11:49:17 +02:00
cfq.h
cfq: fix recursive call in cfq_blkiocg_update_completion_stats()
2010-06-21 09:10:55 +02:00
compat_ioctl.c
block: add secure discard
2010-08-12 08:43:30 -07:00
deadline-iosched.c
elevator.c
block: add function call to switch the IO scheduler from a driver
2010-08-23 13:52:19 +02:00
genhd.c
block: remove all rcu head initializations
2010-05-21 20:01:02 +02:00
ioctl.c
block: add secure discard
2010-08-12 08:43:30 -07:00
Kconfig
blk-cgroup: config options re-arrangement
2010-04-26 19:27:56 +02:00
Kconfig.iosched
blk-cgroup: config options re-arrangement
2010-04-26 19:27:56 +02:00
Makefile
blkdev: move blkdev_issue helper functions to separate file
2010-04-28 19:47:36 +02:00
noop-iosched.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
scsi_ioctl.c