libata: fix locking around blk_abort_request()
authorTejun Heo <tj@kernel.org>
Wed, 14 Apr 2010 23:57:37 +0000 (08:57 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 23 Apr 2010 01:47:52 +0000 (21:47 -0400)
commitfa41efdae7de61191a7bda3a00e88ef69afb5bb9
tree6bd4a8d48bbf0e8be01304e0914a575916e2b9fc
parentc81eddb0e3728661d1585fbc564449c94165cc36
libata: fix locking around blk_abort_request()

blk_abort_request() expectes queue lock to be held by the caller.
Grab it before calling the function.

Lack of this synchronization led to infinite loop on corrupt
q->timeout_list.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-eh.c