linux/drivers/block
Xie Yongji cddce01160 nbd: Aovid double completion of a request
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: 96d97e1782 ("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>
2021-08-13 09:46:48 -06:00
..
aoe for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
drbd for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
mtip32xx mtip32xx: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-30 15:34:04 -06:00
null_blk null_blk: remove an unused variable assignment in null_add_dev 2021-06-30 15:34:04 -06:00
paride pd: fix order of cleaning up the queue and freeing the tagset 2021-07-15 09:29:22 -06:00
rnbd rnbd: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:42 -06:00
rsxx for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
xen-blkback xen-blkback: fix compatibility bug with single page rings 2021-04-23 09:34:07 +02:00
zram block: move bd_mutex to struct gendisk 2021-06-01 07:44:32 -06:00
amiflop.c amiflop: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:43 -06:00
ataflop.c ataflop: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:43 -06:00
brd.c brd: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:23 -06:00
cryptoloop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 30 2019-05-24 17:27:10 +02:00
floppy.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
Kconfig swim: don't call blk_queue_bounce_limit 2021-04-06 09:29:47 -06:00
loop.c loop: reintroduce global lock for safe loop_validate_file() traversal 2021-07-23 10:18:25 -06:00
loop.h loop: charge i/o to mem and blk cg 2021-06-29 10:53:50 -07:00
Makefile drivers/block: remove the umem driver 2021-03-24 06:57:40 -06:00
n64cart.c n64cart: fix the dma address in n64cart_do_bvec 2021-08-04 11:15:21 -06:00
nbd.c nbd: Aovid double completion of a request 2021-08-13 09:46:48 -06:00
pktcdvd.c block: remove REQ_OP_SCSI_{IN,OUT} 2021-06-30 15:34:19 -06:00
ps3disk.c ps3disk: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
ps3vram.c ps3vram: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:24 -06:00
rbd_types.h libceph, rbd: replace zero-length array with flexible-array 2020-06-01 13:22:53 +02:00
rbd.c rbd: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:42 -06:00
sunvdc.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
swim3.c swim3: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
swim_asm.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
swim.c swim: use blk_mq_alloc_disk 2021-06-11 11:53:03 -06:00
sx8.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
virtio_blk.c virtio-blk: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
xen-blkfront.c xen-blkfront: sanitize the removal state machine 2021-07-15 09:32:34 -06:00
z2ram.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00