block: Add interface to abort queued requests

Signed-off-by: Mike Anderson <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
Mike Anderson 2008-09-13 20:31:27 +02:00 • committed by Jens Axboe
commit 11914a53d2
5 changed files with 39 additions and 0 deletions

View file

@ -153,3 +153,25 @@ void blk_add_timer(struct request *req)
time_before(expiry, q->timeout.expires))
mod_timer(&q->timeout, expiry);
}
/**
* blk_abort_queue -- Abort all request on given queue
* @queue: pointer to queue
*
*/
void blk_abort_queue(struct request_queue *q)
{
unsigned long flags;
struct request *rq, *tmp;
spin_lock_irqsave(q->queue_lock, flags);
elv_abort_queue(q);
list_for_each_entry_safe(rq, tmp, &q->timeout_list, timeout_list)
blk_abort_request(rq);
spin_unlock_irqrestore(q->queue_lock, flags);
}
EXPORT_SYMBOL_GPL(blk_abort_queue);