]> git.baikalelectronics.ru Git - kernel.git/commit
xen-blkfront: sanitize the removal state machine
authorChristoph Hellwig <hch@lst.de>
Thu, 15 Jul 2021 14:17:11 +0000 (16:17 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 15 Jul 2021 15:32:34 +0000 (09:32 -0600)
commit76f585ba75a6fd810a89679551c1da0fca0e93da
tree67cb04462645bc180be976d23a745d2e8c15831e
parent8bd65d358746a568b1cd184e8b0534dc1db0160b
xen-blkfront: sanitize the removal state machine

xen-blkfront has a weird protocol where close message from the remote
side can be delayed, and where hot removals are treated somewhat
differently from regular removals, all leading to potential NULL
pointer removals, and a del_gendisk from the block device release
method, which will deadlock. Fix this by just performing normal hot
removals even when the device is opened like all other Linux block
drivers.

Fixes: d7ec1776d26b ("block: take bd_mutex around delete_partitions in del_gendisk")
Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20210715141711.1257293-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/xen-blkfront.c