Re: [PATCH 2.6.0-test2] fix broken blk_start_queue behavior

From: Jens Axboe (axboe@suse.de)
Date: Mon Jul 28 2003 - 02:12:00 EST


On Mon, Jul 28 2003, Lou Langholtz wrote:
> This patch changes the behavior of blk_start_queue() so that request
> queues really do start up again after blk_start_queue() is called (on
> queues that were previously stopped via blk_stop_queue). The patch
> applies against 2.6.0-test2. I have tested this patch with the use of
> blk_stop_queue and blk_start_queue in my branch of the nbd block device
> driver (not yet released). blk_start_queue is also used in
> ./drivers/{block/cciss.c,ide/ide-io.c} which should see things function
> as intended now w.r.t. stopping and starting the request queue (but I do
> not know if anybody noticed that they weren't working correctly before).
> ide-io.c uses queue stop and start for power management handling. Please
> let me know if you've seen a problem before with that, especially if
> this patch fixes it - that will be happy news ;-)

> diff -urN linux-2.6.0-test2/drivers/block/ll_rw_blk.c linux-2.6.0-test2-unplug/drivers/block/ll_rw_blk.c
> --- linux-2.6.0-test2/drivers/block/ll_rw_blk.c 2003-07-27 19:02:48.000000000 -0600
> +++ linux-2.6.0-test2-unplug/drivers/block/ll_rw_blk.c 2003-07-28 00:36:35.366537142 -0600
> @@ -1027,10 +1027,10 @@
> */
> static inline void __generic_unplug_device(request_queue_t *q)
> {
> - if (!blk_remove_plug(q))
> + if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
> return;
>
> - if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
> + if (!blk_remove_plug(q))
> return;
>
> del_timer(&q->unplug_timer);

Patch looks correct, thanks! Guess our mails crossed in mid-air :)

-- 
Jens Axboe

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:34 EST