Signed-off-by: Yury Kamenev <dam...@yandex-team.ru> --- hw/block/virtio-blk.c | 4 ++++ include/hw/virtio/virtio-blk.h | 1 + include/standard-headers/linux/virtio_blk.h | 1 + 3 files changed, 6 insertions(+)
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index f139cd7cc9..abf375b490 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -1031,6 +1031,9 @@ static uint64_t virtio_blk_get_features(VirtIODevice *vdev, uint64_t features, if (s->conf.num_queues > 1) { virtio_add_feature(&features, VIRTIO_BLK_F_MQ); } + if (!s->conf.scan_parts) { + virtio_add_feature(&features, VIRTIO_BLK_F_NO_PS); + } return features; } @@ -1295,6 +1298,7 @@ static Property virtio_blk_properties[] = { #endif DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0, true), + DEFINE_PROP_BOOL("scan-parts", VirtIOBlock, conf.scan_parts, true), DEFINE_PROP_UINT16("num-queues", VirtIOBlock, conf.num_queues, VIRTIO_BLK_AUTO_NUM_QUEUES), DEFINE_PROP_UINT16("queue-size", VirtIOBlock, conf.queue_size, 256), diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 29655a406d..706a789ad5 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -41,6 +41,7 @@ struct VirtIOBlkConf uint16_t num_queues; uint16_t queue_size; bool seg_max_adjust; + bool scan_parts; bool report_discard_granularity; uint32_t max_discard_sectors; uint32_t max_write_zeroes_sectors; diff --git a/include/standard-headers/linux/virtio_blk.h b/include/standard-headers/linux/virtio_blk.h index 2dcc90826a..6b7b2db29c 100644 --- a/include/standard-headers/linux/virtio_blk.h +++ b/include/standard-headers/linux/virtio_blk.h @@ -40,6 +40,7 @@ #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */ #define VIRTIO_BLK_F_DISCARD 13 /* DISCARD is supported */ #define VIRTIO_BLK_F_WRITE_ZEROES 14 /* WRITE ZEROES is supported */ +#define VIRTIO_BLK_F_NO_PS 16 /* Disable partitions scanning */ /* Legacy feature bits */ #ifndef VIRTIO_BLK_NO_LEGACY -- 2.24.3 (Apple Git-128)