1 --- parted-1.6.15/libparted/linux.c.dasd_geometry 2004-10-07 21:20:42.436922904 -0400
2 +++ parted-1.6.15/libparted/linux.c 2004-10-07 21:21:46.175233208 -0400
5 LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
7 - if (!_device_probe_geometry (dev))
8 - goto error_close_dev;
9 + PED_ASSERT (S_ISBLK (dev_stat.st_mode), return 0);
11 + dev->length = _device_get_length (dev);
13 + goto error_close_dev;
15 + dev->sector_size = _device_get_sector_size (dev);
16 + if (!dev->sector_size)
17 + goto error_close_dev;
19 + if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geo)) {
20 + dev->hw_geom.sectors = geo.sectors;
21 + dev->hw_geom.heads = geo.heads;
22 + dev->hw_geom.cylinders = dev->length / (dev->hw_geom.heads * dev->hw_geom.sectors) / (dev->sector_size / PED_SECTOR_SIZE);
23 + dev->bios_geom = dev->hw_geom;
25 + dev->bios_geom.sectors = 12;
26 + dev->bios_geom.heads = 15;
27 + dev->bios_geom.cylinders = dev->length / (dev->hw_geom.heads * dev->hw_geom.sectors) / (dev->sector_size / PED_SECTOR_SIZE);
28 + dev->hw_geom = dev->bios_geom;
31 dev->model = strdup (model_name);