[kpartx] bug fixes for dos extended partition [1/4]
authorChristophe Varoqui <root@xa-s05.(none)>
Thu, 1 Dec 2005 20:50:27 +0000 (21:50 +0100)
committerChristophe Varoqui <root@xa-s05.(none)>
Thu, 1 Dec 2005 20:50:27 +0000 (21:50 +0100)
the latest kpartx generates wrong mapping for
MS-DOS extended partitions.
Attached patch fixes the problem.
Please consider to apply.

Consider you created the following partition table.
# parted /dev/sdc p
Disk geometry for /dev/sdc: 0.000-34686.000 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
  1          0.031      7.844  primary
  2          7.844     31.376  extended
  5          7.875     23.532  logical
  6         23.563     31.376  logical

kpartx should generate the following mappings:
# dmsetup table|grep sdc|sort
  sdc1: 0 16002 linear 8:32 63
  sdc5: 0 32067 linear 8:32 16128
  sdc6: 0 16002 linear 8:32 48258

However, actually it generates:
# dmsetup table|grep sdc|sort
  sdc1: 0 16002 linear 8:32 63
  sdc5: 0 32067 linear 8:32 16128
  sdc6: 0 16065 linear 8:32 80325
  sdc7: 0 16002 linear 8:32 48258

Jun'ichi Nomura, NEC

kpartx/dos.c

index 8bb7615..445a7d9 100644 (file)
@@ -47,8 +47,7 @@ read_extended_partition(int fd, struct partition *ep,
                                        here = start + le32_to_cpu(p.start_sect);
                                        moretodo = 1;
                                }
-                               else
-                                       continue;
+                               continue;
                        }
                        if (n < ns) {
                                sp[n].start = here + le32_to_cpu(p.start_sect);