1
0
Fork 0
alistair23-linux/block
Jens Axboe 07416d29bc cfq-iosched: fix RCU race in the cfq io_context destructor handling
put_io_context() drops the RCU read lock before calling into cfq_dtor(),
however we need to hold off freeing there before grabbing and
dereferencing the first object on the list.

So extend the rcu_read_lock() scope to cover the calling of cfq_dtor(),
and optimize cfq_free_io_context() to use a new variant for
call_for_each_cic() that assumes the RCU read lock is already held.

Hit in the wild by Alexey Dobriyan <adobriyan@gmail.com>

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-05-07 09:28:57 +02:00
..
Kconfig Kconfig: clean up block/Kconfig help descriptions 2008-04-21 09:51:04 +02:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: ll_rw_blk.c split, add blk-merge.c 2008-01-29 21:55:12 +01:00
as-iosched.c block: kill swap_io_context() 2008-02-01 11:34:49 +01:00
blk-barrier.c block: remove remaining __FUNCTION__ occurrences 2008-05-01 08:04:02 -07:00
blk-core.c block: remove remaining __FUNCTION__ occurrences 2008-05-01 08:04:02 -07:00
blk-exec.c block: make core bits checkpatch compliant 2008-02-01 09:26:33 +01:00
blk-ioc.c cfq-iosched: fix RCU race in the cfq io_context destructor handling 2008-05-07 09:28:57 +02:00
blk-map.c block: add dma alignment and padding support to blk_rq_map_kern 2008-04-29 09:50:34 +02:00
blk-merge.c block: make queue flags non-atomic 2008-04-29 14:48:33 +02:00
blk-settings.c block: remove remaining __FUNCTION__ occurrences 2008-05-01 08:04:02 -07:00
blk-sysfs.c block: sysfs store function needs to grab queue_lock and use queue_flag_*() 2008-05-07 09:09:39 +02:00
blk-tag.c block: adjust tagging function queue bit locking 2008-05-07 09:27:43 +02:00
blk.h block: rename and export rq_init() 2008-04-29 14:48:55 +02:00
blktrace.c blktrace: Add blktrace ioctls to SCSI generic devices 2008-01-28 10:04:46 +01:00
bsg.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-05-02 13:52:35 -07:00
cfq-iosched.c cfq-iosched: fix RCU race in the cfq io_context destructor handling 2008-05-07 09:28:57 +02:00
compat_ioctl.c ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) 2008-04-18 00:46:24 +02:00
deadline-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
elevator.c block: remove remaining __FUNCTION__ occurrences 2008-05-01 08:04:02 -07:00
genhd.c mm: bdi: export BDI attributes in sysfs 2008-04-30 08:29:49 -07:00
ioctl.c compat_ioctl: move common block ioctls to compat_blkdev_ioctl 2007-10-10 09:26:00 +02:00
noop-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
scsi_ioctl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-05-02 13:52:35 -07:00