Re: [PATCH] block: add blk_run_queue_async

Tao Ma
2011-04-18T15:34:00Z

Hi Christoph,
On 04/18/2011 05:26 PM, Christoph Hellwig wrote:
> Instead of overloading __blk_run_queue to force an offload to kblockd
> add a new blk_run_queue_async helper to do it explicitly. I've kept
> the blk_queue_stopped check for now, but I suspect it's not needed
> as the check we do when the workqueue items runs should be enough.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
>

> Index: linux-2.6/block/blk.h
> ===================================================================
> --- linux-2.6.orig/block/blk.h 2011-04-18 10:53:39.001656864 +0200
> +++ linux-2.6/block/blk.h 2011-04-18 11:00:28.066107438 +0200
> @@ -22,6 +22,7 @@ void blk_rq_timed_out_timer(unsigned lon
> void blk_delete_timer(struct request *);
> void blk_add_timer(struct request *);
> void __generic_unplug_device(struct request_queue *);
> +void blk_run_queue_async(struct request_queue *q);
any reason why this function isn't put together with the __blk_run_queue
below?
>
> /*
> * Internal atomic flags for request handling
> Index: linux-2.6/include/linux/blkdev.h
> ===================================================================
> --- linux-2.6.orig/include/linux/blkdev.h 2011-04-18 10:48:11.170099546 +0200
> +++ linux-2.6/include/linux/blkdev.h 2011-04-18 10:58:41.003354113 +0200
> @@ -697,7 +697,7 @@ extern void blk_start_queue(struct reque
> extern void blk_stop_queue(struct request_queue *q);
> extern void blk_sync_queue(struct request_queue *q);
> extern void __blk_stop_queue(struct request_queue *q);
> -extern void __blk_run_queue(struct request_queue *q, bool force_kblockd);
> +extern void __blk_run_queue(struct request_queue *q);
> extern void blk_run_queue(struct request_queue *);
> extern int blk_rq_map_user(struct request_queue *, struct request *,
> struct rq_map_data *, void __user *, unsigned long,
Regards,
Tao