[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2] hd-geometry.c: Integrate HDIO_GETGEO in gues
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH V2] hd-geometry.c: Integrate HDIO_GETGEO in guessing |
Date: |
Mon, 14 Jan 2013 14:23:26 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Einar Lueck <address@hidden> writes:
> This patch extends the function hd_geometry_guess. If no geo could
> be guessed via guess_disk_lchs, a new function called guess_disk_pchs is
> called. The latter utilizes HDIO_GET_GEO ioctl to ask the underlying disk
> for geometry.
> If this is not successful (e.g. image files) geometry is derived
> from the size of the disk (as before).
> The new HDIO_GETGEO logic is required for two use cases:
> a) Support for geometries of Direct Attached Storage Disks (DASD)
> on s390x configured as backing of virtio block devices.
> b) Support for FCP attached SCSI disks that do not yet have a
> partition table. Without this patch, fdisk -l on the host would
> return different results then fdisk -l in the guest.
I'm afraid this could mess up existing, working disks.
Consider a disk where guess_disk_lchs() fails and HDIO_GETGEO succeeds.
The old code arbitrarily picks a "standard" physical geometry then.
Your code picks the one returned by HDIO_GETGEO.
Unless the two geometries happen to lead to a compatible address
translation, any guest that actually uses the translation now sees
different disk contents, with predictably bad results.
Can this happen? If no, why not?