On Tue, 2018-02-27 at 11:28 +0800, jianchao.wang wrote:
> If that is true, what if aacraid driver uses block legacy instead of blk-mq ?
> w/ blk-mq disabled, __scsi_queue_insert just requeue the request with 
> blk_requeue_request.
> 
> __scsi_queue_insert
> ...
>       if (q->mq_ops) {
>               scsi_mq_requeue_cmd(cmd);
>               return;
>       }
>       spin_lock_irqsave(q->queue_lock, flags);
>       blk_requeue_request(q, cmd->request);
>       kblockd_schedule_work(&device->requeue_work);
>       spin_unlock_irqrestore(q->queue_lock, flags);
> ...
> 
> no prep/unprep code there for block legacy code.

Hello Jianchao,

For the legacy block layer preparing and unpreparing a request happens from
inside the block layer core. Please have a look at block/blk-core.c and the
code in that file that handles the request flag RQF_DONTPREP.

Thanks,

Bart.



Reply via email to