All of lore.kernel.org
 help / color / mirror / Atom feed
* kpartx bug fixes for dos extended partition [1/4]
@ 2005-12-01 20:05 Jun'ichi Nomura
  2005-12-01 21:24 ` Christophe Varoqui
  0 siblings, 1 reply; 2+ messages in thread
From: Jun'ichi Nomura @ 2005-12-01 20:05 UTC (permalink / raw)
  To: device-mapper development, Christophe Varoqui

[-- Attachment #1: Type: text/plain, Size: 913 bytes --]

Hi Christophe,

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

Thanks,
Nick

[-- Attachment #2: 01-kpartx-dont-count-hidden-extended.patch --]
[-- Type: text/x-patch, Size: 771 bytes --]

Don't count (hidden) extended partition table entry as partition.

Otherwise, kpartx cause inconsistent numbering of partitions and
also generate useless/misleading mappings for such entries.


DOS extended partition is implemented by chain of 2-slot tables.
Both Linux kernel and fdisk/parted doesn't count the link to the next
extended partition table as single partition.

--- multipath-tools.orig/kpartx/dos.c	2005-12-01 08:36:57.000000000 +0900
+++ multipath-tools/kpartx/dos.c	2005-12-02 04:06:25.000000000 +0900
@@ -47,8 +47,7 @@ read_extended_partition(int fd, struct p
 					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);

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-12-01 21:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-01 20:05 kpartx bug fixes for dos extended partition [1/4] Jun'ichi Nomura
2005-12-01 21:24 ` Christophe Varoqui

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.