From: Jens Axboe Date: Thu, 25 Oct 2007 08:14:47 +0000 (+0200) Subject: [BLOCK] Fix bad sharing of tag busy list on queues with shared tag maps X-Git-Tag: v2.6.24-rc2~103^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6eca9004dfcb274a502438a591df5b197690afb1;p=pandora-kernel.git [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 --- Reading git-diff-tree failed