1
0
Fork 0
alistair23-linux/block
Jens Axboe 6eca9004df [BLOCK] Fix bad sharing of tag busy list on queues with shared tag maps
For the locking to work, only the tag map and tag bit map may be shared
(incidentally, I was just explaining this to Nick yesterday, but I
apparently didn't review the code well enough myself). But we also share
the busy list!  The busy_list must be queue private, or we need a
block_queue_tag covering lock as well.

So we have to move the busy_list to the queue. This'll work fine, and
it'll actually also fix a problem with blk_queue_invalidate_tags() which
will invalidate tags across all shared queues. This is a bit confusing,
the low level driver should call it for each queue seperately since
otherwise you cannot kill tags on just a single queue for eg a hard
drive that stops responding. Since the function has no callers
currently, it's not an issue.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2007-10-29 11:33:06 +01:00
..
Kconfig Only enable BLOCK_COMPAT if COMPAT is needed 2007-10-12 17:58:36 -07: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] Only include the compat ioctl code if CONFIG_BLOCK is set 2007-10-12 12:50:41 +02:00
as-iosched.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
blktrace.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
bsg.c bsg: mark struct file_operations const 2007-10-16 09:59:54 +02:00
cfq-iosched.c cfq_get_queue: fix possible NULL pointer access 2007-10-29 11:33:05 +01:00
compat_ioctl.c compat_ioctl: move floppy handlers to block/compat_ioctl.c 2007-10-10 09:26:00 +02:00
deadline-iosched.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
elevator.c fix typo "insted" -> "instead" 2007-10-20 01:55:04 +02:00
genhd.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
ioctl.c compat_ioctl: move common block ioctls to compat_blkdev_ioctl 2007-10-10 09:26:00 +02:00
ll_rw_blk.c [BLOCK] Fix bad sharing of tag busy list on queues with shared tag maps 2007-10-29 11:33:06 +01:00
noop-iosched.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
scsi_ioctl.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00