On Fri, Oct 26, 2012 at 02:04:27PM +0200, Bart Van Assche wrote: > Some request_fn implementations, e.g. scsi_request_fn(), unlock > the queue lock. Make sure that blk_cleanup_queue() waits until all > active request_fn invocations have finished. A block driver may > start cleaning up resources needed by its request_fn as soon as > blk_cleanup_queue() finished, so blk_cleanup_queue() must wait > for all outstanding request_fn invocations to finish. Ditto. More verbose explanation *please*. > Reported-by: Chanho Min <chanho.min@xxxxxxx> > Cc: James Bottomley <JBottomley@xxxxxxxxxxxxx> > Cc: Mike Christie <michaelc@xxxxxxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: Tejun Heo <tj@xxxxxxxxxx> > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> > --- > block/blk-core.c | 3 +++ > include/linux/blkdev.h | 6 ++++++ > 2 files changed, 9 insertions(+) > > diff --git a/block/blk-core.c b/block/blk-core.c > index 2f1be7a..7662d83 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -308,7 +308,9 @@ void inline __blk_run_queue_uncond(struct request_queue *q) > if (unlikely(blk_queue_dead(q))) > return; > > + q->request_fn_active++; > q->request_fn(q); > + q->request_fn_active--; > } Here too. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html