Re: [PATCH] nvme-tcp: Check if request has started before processing it

From: Hannes Reinecke
Date: Sat Feb 13 2021 - 03:54:25 EST


On 2/12/21 7:17 PM, Daniel Wagner wrote:
blk_mq_tag_to_rq() will always return a request if the command_id is
in the valid range. Check if the request has been started. If we
blindly process the request we might double complete a request which
can be fatal.

Signed-off-by: Daniel Wagner <dwagner@xxxxxxx>
---

This patch is against nvme-5.12.

There is one blk_mq_tag_to_rq() in nvme_tcp_recv_ddgst() which I
didn't update as I am not sure if it's also needed.

I guess it is; this patch is essentially a protection against invalid frames, and as such affects all places.

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer