kernel_optimize_test/block
Jens Axboe 9b50902db5 cfq-iosched: fix locking around ioc->ioc_data assignment
Since we are modifying this RCU pointer, we need to hold
the lock protecting it around it.

This fixes a potential reuse and double free of a cfq
io_context structure. The bug has been in CFQ for a long
time, it hit very few people but those it did hit seemed
to see it a lot.

Tracked in RH bugzilla here:

https://bugzilla.redhat.com/show_bug.cgi?id=577968

Credit goes to Paul Bolle for figuring out that the issue
was around the one-hit ioc->ioc_data cache. Thanks to his
hard work the issue is now fixed.

Cc: stable@kernel.org
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2011-06-06 05:57:21 +02:00
..
blk-cgroup.c cgroups: add per-thread subsystem callbacks 2011-05-26 17:12:34 -07:00
blk-cgroup.h cfq-iosched: Make IO merge related stats per cpu 2011-05-23 10:02:19 +02:00
blk-core.c block: export blk_{get,put}_queue() 2011-05-27 07:45:45 +02:00
blk-exec.c block: Remove 'plug/unplug' comment in blk_execute_rq_nowait 2011-05-05 15:10:05 -06:00
blk-flush.c block: hold queue if flush is running for non-queueable flush drive 2011-05-06 11:36:25 -06:00
blk-integrity.c dm: improve block integrity support 2011-04-05 23:52:43 +02:00
blk-ioc.c blk-cgroup: Initialize ioc->cgroup_changed at ioc creation time 2011-05-23 19:35:04 +02:00
blk-iopoll.c
blk-lib.c blkdev: Do not return -EOPNOTSUPP if discard is supported 2011-05-06 19:30:01 -06:00
blk-map.c
blk-merge.c
blk-settings.c block: Fix discard topology stacking and reporting 2011-05-18 10:37:35 +02:00
blk-softirq.c
blk-sysfs.c Merge commit 'v2.6.39' into for-2.6.40/core 2011-05-20 20:33:15 +02:00
blk-tag.c
blk-throttle.c blk-throttle: Make no throttling rule group processing lockless 2011-05-20 20:34:53 +02:00
blk-timeout.c
blk.h Merge branch 'for-linus' into for-2.6.40/core 2011-05-20 20:36:16 +02:00
bsg.c
cfq-iosched.c cfq-iosched: fix locking around ioc->ioc_data assignment 2011-06-06 05:57:21 +02:00
cfq.h
compat_ioctl.c
deadline-iosched.c iosched: prevent aliased requests from starving other I/O 2011-06-02 21:19:05 +02:00
elevator.c iosched: prevent aliased requests from starving other I/O 2011-06-02 21:19:05 +02:00
genhd.c block: always allocate genhd->ev if check_events is implemented 2011-05-26 21:06:50 +02:00
ioctl.c
Kconfig
Kconfig.iosched
Makefile
noop-iosched.c
scsi_ioctl.c