summaryrefslogtreecommitdiffstats
path: root/block/scsi_ioctl.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-10-25 10:14:47 +0200
committerJens Axboe <jens.axboe@oracle.com>2007-10-29 11:33:06 +0100
commit6eca9004dfcb274a502438a591df5b197690afb1 (patch)
treefd281ef7c016fbae03e2a27e42a53efd37c3ec63 /block/scsi_ioctl.c
parentFix a build error when BLOCK=n (diff)
downloadlinux-6eca9004dfcb274a502438a591df5b197690afb1.tar.xz
linux-6eca9004dfcb274a502438a591df5b197690afb1.zip
[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>
Diffstat (limited to 'block/scsi_ioctl.c')
0 files changed, 0 insertions, 0 deletions