Tejun Heo
80fd99792b
blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
...
Currently, blkg_lookup() doesn't check @q bypass state. This patch
updates blk_queue_bypass_start() to do synchronize_rcu() before
returning and updates blkg_lookup() to check blk_queue_bypass() and
return %NULL if bypassing. This ensures blkg_lookup() returns %NULL
if @q is bypassing.
This is to guarantee that nobody is accessing policy data while @q is
bypassing, which is necessary to allow replacing blkio_cgroup->pd[] in
place on policy [de]activation.
v2: Added more comments explaining bypass guarantees as suggested by
Vivek.
v3: Added more comments explaining why there's no synchronize_rcu() in
blk_cleanup_queue() as suggested by Vivek.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2012-04-20 10:06:06 +02:00
..
partitions
LDM: Fix reassembly of extended VBLKs.
2012-02-24 09:37:42 +00:00
blk-cgroup.c
blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
2012-04-20 10:06:06 +02:00
blk-cgroup.h
blkcg: make blkg_conf_prep() take @pol and return with queue lock held
2012-04-20 10:06:06 +02:00
blk-core.c
blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
2012-04-20 10:06:06 +02:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
Merge branch 'for-3.5' of ../cgroup into block/for-3.5/core-merged
2012-04-01 12:55:00 -07:00
blk-iopoll.c
blk-lib.c
blk-map.c
blk-merge.c
block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions
2012-02-08 09:19:38 +01:00
blk-settings.c
block: Introduce blk_set_stacking_limits function
2012-01-11 16:27:11 +01:00
blk-softirq.c
sched, block: Unify cache detection
2012-01-27 13:28:48 +01:00
blk-sysfs.c
blkcg: unify blkg's for blkcg policies
2012-03-06 21:27:23 +01:00
blk-tag.c
block: fix blk_queue_end_tag()
2011-12-29 09:16:28 +01:00
blk-throttle.c
blkcg: make blkg_conf_prep() take @pol and return with queue lock held
2012-04-20 10:06:06 +02:00
blk-timeout.c
blk.h
Merge branch 'for-3.5' of ../cgroup into block/for-3.5/core-merged
2012-04-01 12:55:00 -07:00
bsg-lib.c
bsg.c
bsg: fix sysfs link remove warning
2012-02-08 20:02:03 +01:00
cfq-iosched.c
blkcg: make blkg_conf_prep() take @pol and return with queue lock held
2012-04-20 10:06:06 +02:00
compat_ioctl.c
block: Add BLKROTATIONAL ioctl
2012-01-11 16:29:31 +01:00
deadline-iosched.c
elevator: make elevator_init_fn() return 0/-errno
2012-03-06 21:27:21 +01:00
elevator.c
block: implement bio_associate_current()
2012-03-06 21:27:24 +01:00
genhd.c
Block: use a freezable workqueue for disk-event polling
2012-03-02 10:51:00 +01:00
ioctl.c
Merge branch 'for-3.3/core' of git://git.kernel.dk/linux-block
2012-01-15 12:24:45 -08:00
Kconfig
move fs/partitions to block/
2012-01-03 22:54:06 -05:00
Kconfig.iosched
blkcg: make CONFIG_BLK_CGROUP bool
2012-03-06 21:27:21 +01:00
Makefile
separate partition format handling from generic code
2012-01-03 22:54:06 -05:00
noop-iosched.c
elevator: make elevator_init_fn() return 0/-errno
2012-03-06 21:27:21 +01:00
partition-generic.c
block: Fix NULL pointer dereference in sd_revalidate_disk
2012-03-02 10:38:33 +01:00
scsi_ioctl.c
block: fail SCSI passthrough ioctls on partition devices
2012-01-14 15:07:24 -08:00