discard_granularity was missing from this, which means that SCSI disks created with -drive if=scsi would default to 0 (i.e. disabling discards) instead of -1, which makes scsi-hd automatically pick a granularity and is the default of the corresponding qdev property for -device scsi-hd.
This was broken in QEMU 9.0 with commit 3089637. Also set other fields whose default isn't an obvious 0. These are not actual bug fixes because ON_OFF_AUTO_AUTO in fact happens to be 0, but it's better not to rely on the order of enums. Cc: [email protected] Fixes: 308963746169 ('scsi: Don't ignore most usb-storage properties') Reported-by: Lexi Winter <[email protected]> Signed-off-by: Kevin Wolf <[email protected]> Message-ID: <[email protected]> Signed-off-by: Kevin Wolf <[email protected]> --- include/hw/block/block.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/hw/block/block.h b/include/hw/block/block.h index e0a427039ee..df941df19f2 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -53,7 +53,12 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) #define DEFAULT_BLOCK_CONF (BlockConf) { \ .bootindex = -1, \ + .backend_defaults = ON_OFF_AUTO_AUTO, \ + .discard_granularity = -1, \ + .wce = ON_OFF_AUTO_AUTO, \ .share_rw = false, \ + .account_invalid = ON_OFF_AUTO_AUTO, \ + .account_failed = ON_OFF_AUTO_AUTO, \ .rerror = BLOCKDEV_ON_ERROR_AUTO, \ .werror = BLOCKDEV_ON_ERROR_AUTO, \ } -- 2.54.0
