OSDN Git Service

virtio-blk: fix ZBD probe in kernels without ZBD support
authorDmitry Fomichev <dmitry.fomichev@wdc.com>
Thu, 30 Mar 2023 21:49:53 +0000 (17:49 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 4 Apr 2023 15:01:57 +0000 (11:01 -0400)
commit10805eb5d6d15fd4f61b05cc7aa269e12ab99848
tree29be4742097dbbe1e4e79b2b067165b1a5955ecf
parentf1ba4e674febf5c0e9f725a75ca43b7722b4e963
virtio-blk: fix ZBD probe in kernels without ZBD support

When the kernel is built without support for zoned block devices,
virtio-blk probe needs to error out any host-managed device scans
to prevent such devices from appearing in the system as non-zoned.
The current virtio-blk code simply bypasses all ZBD checks if
CONFIG_BLK_DEV_ZONED is not defined and this leads to host-managed
block devices being presented as non-zoned in the OS. This is one of
the main problems this patch series is aimed to fix.

In this patch, make VIRTIO_BLK_F_ZONED feature defined even when
CONFIG_BLK_DEV_ZONED is not. This change makes the code compliant with
the voted revision of virtio-blk ZBD spec. Modify the probe code to
look at the situation when VIRTIO_BLK_F_ZONED is negotiated in a kernel
that is built without ZBD support. In this case, the code checks
the zoned model of the device and fails the probe is the device
is host-managed.

The patch also adds the comment to clarify that the call to perform
the zoned device probe is correctly placed after virtio_device ready().

Fixes: 95bfec41bd3d ("virtio-blk: add support for zoned block devices")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Message-Id: <20230330214953.1088216-3-dmitry.fomichev@wdc.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/block/virtio_blk.c