Chaitanya Kulkarni c03fd85de2 nvme: don't check nvme_req flags for new req
nvme_clear_request() has a check for flag REQ_DONTPREP and it is called
from nvme_init_request() and nvme_setuo_cmd().

The function nvme_init_request() is called from nvme_alloc_request()
and nvme_alloc_request_qid(). From these two callers new request is
allocated everytime. For newly allocated request RQF_DONTPREP is never
set. Since after getting a tag, block layer sets the req->rq_flags == 0
and never sets the REQ_DONTPREP when returning the request :-

nvme_alloc_request()
	blk_mq_alloc_request()
		blk_mq_rq_ctx_init()
			rq->rq_flags = 0 <----

nvme_alloc_request_qid()
	blk_mq_alloc_request_hctx()
		blk_mq_rq_ctx_init()
			rq->rq_flags = 0 <----

The block layer does set req->rq_flags but REQ_DONTPREP is not one of
them and that is set by the driver.

That means we can unconditinally set the REQ_DONTPREP value to the
rq->rq_flags when nvme_init_request()->nvme_clear_request() is called
from above two callers.

Move the check for REQ_DONTPREP from nvme_clear_nvme_request() into
nvme_setup_cmd().

This is needed since nvme_alloc_request() now gets called from fast
path when NVMeOF target is configured with passthru backend to avoid
unnecessary checks in the fast path.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2021-04-02 18:48:26 +02:00
..
2021-02-26 09:41:03 -08:00
2021-02-24 10:25:37 -08:00
2021-03-07 13:24:44 -08:00
2021-02-22 14:44:39 -08:00
2021-02-23 15:05:10 -08:00
2021-03-14 12:54:56 -07:00
2021-02-22 10:05:12 -08:00
2021-02-22 14:27:07 -08:00
2021-02-22 09:52:55 -08:00
2021-02-28 15:48:25 -08:00
2021-03-05 12:26:24 -08:00
2021-03-13 12:38:44 -08:00
2021-02-24 10:25:37 -08:00
2021-02-24 09:35:54 -08:00
2021-02-24 10:25:37 -08:00
2021-03-12 11:34:36 -08:00
2021-02-25 12:23:49 -08:00
2021-03-12 13:37:18 -08:00
2021-02-26 14:16:06 -08:00
2021-02-22 14:34:00 -08:00
2021-02-28 11:51:20 -08:00
2021-02-09 16:10:49 +01:00
2021-03-13 12:34:29 -08:00
2021-03-13 12:32:57 -08:00
2021-02-24 10:43:40 -08:00
2021-02-25 12:21:08 -08:00
2021-02-09 12:15:07 +01:00
2021-03-12 11:34:36 -08:00