Ekaterina Tumanova <tuman...@linux.vnet.ibm.com> writes: > hd_geometry_guess function autodetects the drive geometry. This patch > adds a block backend call, that probes the backing device geometry. > If the inner driver method is implemented and succeeds (currently only DASDs), > the blkconf_geometry will pass-through the backing device geometry. [...] > diff --git a/hw/block/hd-geometry.c b/hw/block/hd-geometry.c > index 6fcf74d..4972114 100644 > --- a/hw/block/hd-geometry.c > +++ b/hw/block/hd-geometry.c > @@ -121,6 +121,14 @@ void hd_geometry_guess(BlockBackend *blk, > int *ptrans) > { > int cylinders, heads, secs, translation; > + struct ProbeGeometry geometry = blk_probe_geometry(blk); > + > + if (geometry.rc == 0) { > + *pcyls = geometry.geo.cylinders; > + *psecs = geometry.geo.sectors; > + *pheads = geometry.geo.heads;
Missing: translation = ... I'm not sure what value to assign. > + goto done; > + } > > if (guess_disk_lchs(blk, &cylinders, &heads, &secs) < 0) { > /* no LCHS guess: use a standard physical disk geometry */ [...]