lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 5/6] nbd: convert to use blk_mq_find_and_get_req()
On Thu, Sep 09, 2021 at 10:12:55PM +0800, Yu Kuai wrote:
> blk_mq_tag_to_rq() can only ensure to return valid request in
> following situation:
>
> 1) client send request message to server first
> submit_bio
> ...
> blk_mq_get_tag
> ...
> blk_mq_get_driver_tag
> ...
> nbd_queue_rq
> nbd_handle_cmd
> nbd_send_cmd
>
> 2) client receive respond message from server
> recv_work
> nbd_read_stat
> blk_mq_tag_to_rq
>
> If step 1) is missing, blk_mq_tag_to_rq() will return a stale
> request, which might be freed. Thus convert to use
> blk_mq_find_and_get_req() to make sure the returned request is not
> freed.

But NBD_CMD_INFLIGHT has been added for checking if the reply is
expected, do we still need blk_mq_find_and_get_req() for covering
this issue? BTW, request and its payload is pre-allocated, so there
isn't real use-after-free.


Thanks,
Ming

\
 
 \ /
  Last update: 2021-09-14 03:12    [W:0.080 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site