]> git.baikalelectronics.ru Git - kernel.git/commit
block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list
authorHannes Reinecke <hare@suse.de>
Wed, 18 Feb 2009 09:30:15 +0000 (10:30 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Wed, 18 Feb 2009 09:34:16 +0000 (10:34 +0100)
commit87310df89faec3ec06811d8f32dd9e433f2b8be7
treebc92a402a4d710718883e67eeab6e0ced221e7ff
parent2da68bc1f86082ba0693411f67b180359245c1f7
block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list

blk_abort_queue() iterates the timeout list and aborts each request on the
list, but if the driver error handling readds a request to the timeout list
during this processing, we could be looping forever. Fix this by splicing
current entries to a local list and run over that list instead.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-timeout.c