Here are three patches that allow to detect the host configuration of geometry and block sizes. This is necessary on s390 to make the guest partition detection work (on dasds the geometry still influences the layout), as well as to not break cache=none (e.g. dasd disks often have 4k block size)
These patches try to minize the impact by: - using HGIO_GETGEO only in cases were the layout cannot be read from disk - using host block size only if the user or the bus specifies the special value of 0 for logical_block_size Einar Lueck (3): hd-geometry.c: Integrate HDIO_GETGEO in guessing hd-geometry.c/s390: Disable geometry translation block: support auto-sensing of block sizes hw/block-common.c | 29 ++++++++++++ hw/block-common.h | 12 +++-- hw/hd-geometry.c | 129 +++++++++++++++++++++++++++++++++++--------------- hw/ide/qdev.c | 1 + hw/qdev-properties.c | 4 +- hw/s390-virtio-bus.c | 2 +- hw/scsi-disk.c | 1 + hw/virtio-blk.c | 1 + 8 files changed, 137 insertions(+), 42 deletions(-) -- 1.7.10.1