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

Sagi Grimberg sagi at grimberg.me
Fri Feb 12 16:49:32 EST 2021


>>> 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.
>>
>> How did you get to this one? did the controller send a completion for
>> a completed/bogus request?
> 
> If that is the case, then that must mean it's possible the driver could
> have started the command id just before the bogus completion check. Data
> iorruption, right?

Yes, which is why I don't think this check is very useful..



More information about the Linux-nvme mailing list