block: add @force_kblockd to __blk_run_queue()

__blk_run_queue() automatically either calls q->request_fn() directly
or schedules kblockd depending on whether the function is recursed.
blk-flush implementation needs to be able to explicitly choose
kblockd.  Add @force_kblockd.

All the current users are converted to specify %false for the
parameter and this patch doesn't introduce any behavior change.

stable: This is prerequisite for fixing ide oops caused by the new
        blk-flush implementation.

Signed-off-by: Tejun Heo <[email protected]>
Cc: Jan Beulich <[email protected]>
Cc: James Bottomley <[email protected]>
Cc: [email protected]
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
Tejun Heo 2011-03-02 08:48:05 -05:00 • committed by Jens Axboe
commit 1654e7411a
7 changed files with 15 additions and 14 deletions

View file

@ -69,7 +69,7 @@ static void blk_flush_complete_seq_end_io(struct request_queue *q,
* queue. Kick the queue in those cases.
*/
if (was_empty && next_rq)
__blk_run_queue(q);
__blk_run_queue(q, false);
}
static void pre_flush_end_io(struct request *rq, int error)