Xie Yongji e0ee8d9c31 nbd: Aovid double completion of a request
[ Upstream commit cddce01160582a5f52ada3da9626c052d852ec42 ]

There is a race between iterating over requests in
nbd_clear_que() and completing requests in recv_work(),
which can lead to double completion of a request.

To fix it, flush the recv worker before iterating over
the requests and don't abort the completed request
while iterating.

Fixes: 96d97e17828f ("nbd: clear_sock on netlink disconnect")
Reported-by: Jiang Yadong <jiangyadong@bytedance.com>
Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/r/20210813151330.96-1-xieyongji@bytedance.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-18 08:59:14 +02:00
..
2020-10-13 12:12:44 -07:00
2020-09-10 09:32:30 -06:00
2020-09-10 09:32:30 -06:00
2020-09-24 13:43:39 -06:00
2021-03-04 11:38:33 +01:00
2021-01-17 14:17:03 +01:00
2020-09-10 09:32:31 -06:00
2020-09-10 09:32:30 -06:00
2018-11-09 08:14:14 -07:00