]> git.pld-linux.org Git - packages/parted.git/blob - parted-dasd_geometry.patch
- updated for 1.6.25
[packages/parted.git] / parted-dasd_geometry.patch
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
3 @@ -731,8 +731,27 @@
4  
5         LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
6  
7 -       if (!_device_probe_geometry (dev)) 
8 -         goto error_close_dev;
9 +       PED_ASSERT (S_ISBLK (dev_stat.st_mode), return 0);
10 +
11 +       dev->length = _device_get_length (dev);
12 +       if (!dev->length)
13 +               goto error_close_dev;
14 +
15 +       dev->sector_size = _device_get_sector_size (dev);
16 +       if (!dev->sector_size)
17 +               goto error_close_dev;
18 +
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;
24 +       } else {
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;
29 +       }
30  
31         dev->model = strdup (model_name);
32  
This page took 0.033383 seconds and 3 git commands to generate.