|
@@ -6480,6 +6480,13 @@ int coroutine_fn bdrv_co_get_info(BlockDriverState *bs, BlockDriverInfo *bdi)
|
|
}
|
|
}
|
|
memset(bdi, 0, sizeof(*bdi));
|
|
memset(bdi, 0, sizeof(*bdi));
|
|
ret = drv->bdrv_co_get_info(bs, bdi);
|
|
ret = drv->bdrv_co_get_info(bs, bdi);
|
|
|
|
+ if (bdi->subcluster_size == 0) {
|
|
|
|
+ /*
|
|
|
|
+ * If the driver left this unset, subclusters are not supported.
|
|
|
|
+ * Then it is safe to treat each cluster as having only one subcluster.
|
|
|
|
+ */
|
|
|
|
+ bdi->subcluster_size = bdi->cluster_size;
|
|
|
|
+ }
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|