On Fri, Feb 05, 2016 at 02:47:11PM +0100, Viktor Mihajlovski wrote: > Fixes an issue with parted print being run against a logical > volume realised by extents on a physical volume residing on > a DASD. > We must make sure that geometry, device blocksize and DASD > attributes are present before we start format verifications > If any of it is missing this is not a DASD. > > Signed-off-by: Viktor Mihajlovski <[email protected]> > --- > libparted/labels/fdasd.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/libparted/labels/fdasd.c b/libparted/labels/fdasd.c > index 7e6a77a..968b332 100644 > --- a/libparted/labels/fdasd.c > +++ b/libparted/labels/fdasd.c > @@ -1021,13 +1021,20 @@ fdasd_get_geometry (const PedDevice *dev, > fdasd_anchor_t *anc, int f) > goto error; > } > > - if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0) > + if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0 || > + anc->geo.heads == 0 || > + anc->geo.sectors == 0 || > + anc->geo.cylinders == 0 ) { > fdasd_error(anc, unable_to_ioctl, > _("Could not retrieve disk geometry information.")); > + goto error; > + } > > - if (ioctl(f, BLKSSZGET, &blksize) != 0) > + if (ioctl(f, BLKSSZGET, &blksize) != 0) { > fdasd_error(anc, unable_to_ioctl, > _("Could not retrieve blocksize information.")); > + goto error; > + } > > /* get disk type */ > if (ioctl(f, BIODASDINFO, &dasd_info) != 0) { > -- > 1.9.1 > >
Ack, thanks! -- Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)

