search for: elv_abort_queu

Displaying 5 results from an estimated 5 matches for "elv_abort_queu".

Did you mean: elv_abort_queue
2012 Jun 12
1
[PATCH v2] block: Drop dead function blk_abort_queue()
...nter to queue - * - */ -void blk_abort_queue(struct request_queue *q) -{ - unsigned long flags; - struct request *rq, *tmp; - LIST_HEAD(list); - - /* - * Not a request based block device, nothing to abort - */ - if (!q->request_fn) - return; - - spin_lock_irqsave(q->queue_lock, flags); - - elv_abort_queue(q); - - /* - * Splice entries to local list, to avoid deadlocking if entries - * get readded to the timeout list by error handling - */ - list_splice_init(&q->timeout_list, &list); - - list_for_each_entry_safe(rq, tmp, &list, timeout_list) - blk_abort_request(rq); - - /* - * Oc...
2012 May 21
6
[RFC PATCH 1/5] block: Introduce q->abort_queue_fn()
When user hot-unplug a disk which is busy serving I/O, __blk_run_queue might be unable to drain all the requests. As a result, the blk_drain_queue() would loop forever and blk_cleanup_queue would not return. So hot-unplug will fail. This patch adds a callback in blk_drain_queue() for low lever driver to abort requests. Currently, this is useful for virtio-blk to do cleanup in hot-unplug. Cc:
2012 May 21
6
[RFC PATCH 1/5] block: Introduce q->abort_queue_fn()
When user hot-unplug a disk which is busy serving I/O, __blk_run_queue might be unable to drain all the requests. As a result, the blk_drain_queue() would loop forever and blk_cleanup_queue would not return. So hot-unplug will fail. This patch adds a callback in blk_drain_queue() for low lever driver to abort requests. Currently, this is useful for virtio-blk to do cleanup in hot-unplug. Cc:
2012 Apr 20
1
[PATCH] multiqueue: a hodge podge of things
...ruct request_queue *q) { + struct blk_queue_ctx *ctx; unsigned long flags; struct request *rq, *tmp; LIST_HEAD(list); + unsigned int i; /* * Not a request based block device, nothing to abort */ if (!q->request_fn) return; spin_lock_irqsave(q->queue_lock, flags); elv_abort_queue(q); /* * Splice entries to local list, to avoid deadlocking if entries * get readded to the timeout list by error handling */ - list_splice_init(&q->timeout_list, &list); + queue_for_each_ctx(q, ctx, i) + list_splice_init(&ctx->timeout_list, &list); list_for...
2012 Apr 20
1
[PATCH] multiqueue: a hodge podge of things
...ruct request_queue *q) { + struct blk_queue_ctx *ctx; unsigned long flags; struct request *rq, *tmp; LIST_HEAD(list); + unsigned int i; /* * Not a request based block device, nothing to abort */ if (!q->request_fn) return; spin_lock_irqsave(q->queue_lock, flags); elv_abort_queue(q); /* * Splice entries to local list, to avoid deadlocking if entries * get readded to the timeout list by error handling */ - list_splice_init(&q->timeout_list, &list); + queue_for_each_ctx(q, ctx, i) + list_splice_init(&ctx->timeout_list, &list); list_for...