Current copying serves purpose of initializing flush req's pdu, so don't do that if init_flush_rq is implemented. Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx> --- block/blk-mq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 1daef32..113d58d 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -292,8 +292,10 @@ void blk_mq_clone_flush_request(struct request *flush_rq, flush_rq->mq_ctx = orig_rq->mq_ctx; flush_rq->tag = orig_rq->tag; - memcpy(blk_mq_rq_to_pdu(flush_rq), blk_mq_rq_to_pdu(orig_rq), - hctx->cmd_size); + + if (!orig_rq->q->mq_ops->init_flush_rq) + memcpy(blk_mq_rq_to_pdu(flush_rq), + blk_mq_rq_to_pdu(orig_rq), hctx->cmd_size); } inline void __blk_mq_end_io(struct request *rq, int error) -- 1.7.9.5 -- 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