Re: [PATCH 5/7] blk-mq: remove REQ_ATOM_COMPLETE usages from blk-mq

From: jianchao.wang
Date: Tue Jan 09 2018 - 00:59:57 EST


Hi tejun

Many thanks for your kindly response.

On 01/09/2018 11:37 AM, Tejun Heo wrote:
> Hello,
>
> On Tue, Jan 09, 2018 at 11:08:04AM +0800, jianchao.wang wrote:
>>> But what'd prevent the completion reinitializing the request and then
>>> the actual completion path coming in and completing the request again?
>>
>> blk_mark_rq_complete() will gate and ensure there will be only one
>> __blk_mq_complete_request() to be invoked.
>
> Yeah, but then the complete flag will be cleared once completion is
> done and the request is reinitialized.

Yes, it is. What I mean is not to reserve blk_mark_rq_complete and REQ_ATOM_COMPLETE
usages in blk-mq but the side-effect after blk_mq_complete_request cannot exclude with itself.
As you said, the scene is racy and should be modified. :)

Thanks
Jianchao