[parted/f16] Copy flags when duplicating GPT partitions (#747497)

Brian C. Lane bcl at fedoraproject.org
Thu Oct 27 23:51:21 UTC 2011


commit d11a2eb2f97f9141fed791cd808544c033a78c7d
Author: Brian C. Lane <bcl at redhat.com>
Date:   Thu Oct 27 16:51:05 2011 -0700

    Copy flags when duplicating GPT partitions (#747497)

 ...-make-pc98-detection-depend-on-signatures.patch |   65 ++++++++++++++++----
 parted.spec                                        |    6 ++-
 2 files changed, 58 insertions(+), 13 deletions(-)
---
diff --git a/parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch b/parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch
index 2590b8a..710f9ed 100644
--- a/parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch
+++ b/parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch
@@ -1,7 +1,7 @@
-From 68ff2e0c7563054e95389c1da5164b3d9c75c52b Mon Sep 17 00:00:00 2001
+From 942e75eb8e605be49aa86cf3b35462ce807772de Mon Sep 17 00:00:00 2001
 From: "Brian C. Lane" <bcl at redhat.com>
-Date: Fri, 7 Oct 2011 10:56:00 -0700
-Subject: [PATCH 1/2] libparted: make pc98 detection depend on signatures
+Date: Fri, 7 Oct 2011 16:53:49 -0700
+Subject: [PATCH] libparted: make pc98 detection depend on signatures
  (#646053)
 
 pc98 is not a common disk label. Change pc98_probe to only return true
@@ -16,19 +16,47 @@ This will prevent false-positive detection on msdos labeled disks
 
 * libparted/labels/pc98.c (pc98_probe): Change to require signature
   (pc98_check_ipl_signature): Add more signatures
+  (check_partition_consistency): Remove unused function
 ---
- libparted/labels/pc98.c |   32 ++++++++++----------------------
- 1 files changed, 10 insertions(+), 22 deletions(-)
+ libparted/labels/pc98.c |   65 ++++++----------------------------------------
+ 1 files changed, 9 insertions(+), 56 deletions(-)
 
 diff --git a/libparted/labels/pc98.c b/libparted/labels/pc98.c
-index 3afa8a2..ea3cf4e 100644
+index 3afa8a2..d60843d 100644
 --- a/libparted/labels/pc98.c
 +++ b/libparted/labels/pc98.c
-@@ -140,7 +140,14 @@ pc98_check_magic (const PC98RawTable *part_table)
+@@ -140,45 +140,20 @@ pc98_check_magic (const PC98RawTable *part_table)
  static int
  pc98_check_ipl_signature (const PC98RawTable *part_table)
  {
 -	return !memcmp (part_table->boot_code + 4, "IPL1", 4);
+-}
+-
+-static int
+-check_partition_consistency (const PedDevice* dev,
+-	       		     const PC98RawPartition* raw_part)
+-{
+-	if (raw_part->ipl_sect >= dev->hw_geom.sectors
+-	   || raw_part->sector >= dev->hw_geom.sectors
+-	   || raw_part->end_sector >= dev->hw_geom.sectors
+-	   || raw_part->ipl_head >= dev->hw_geom.heads
+-	   || raw_part->head >= dev->hw_geom.heads
+-	   || raw_part->end_head >= dev->hw_geom.heads
+-	   || PED_LE16_TO_CPU(raw_part->ipl_cyl) >= dev->hw_geom.cylinders
+-	   || PED_LE16_TO_CPU(raw_part->cyl) >= dev->hw_geom.cylinders
+-	   || PED_LE16_TO_CPU(raw_part->end_cyl) >= dev->hw_geom.cylinders
+-	   || PED_LE16_TO_CPU(raw_part->cyl)
+-	   	> PED_LE16_TO_CPU(raw_part->end_cyl)
+-#if 0
+-	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->ipl_cyl),
+-			     raw_part->ipl_head, raw_part->ipl_sect)
+-	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->cyl),
+-			     raw_part->head, raw_part->sector)
+-	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->end_cyl),
+-			     raw_part->end_head, raw_part->end_sector)
+-#endif
+-	   || PED_LE16_TO_CPU(raw_part->end_cyl)
+-	  		< PED_LE16_TO_CPU(raw_part->cyl))
 +	if (memcmp (part_table->boot_code + 4, "IPL1", 4) == 0)
 +		return 1;
 +	else if (memcmp (part_table->boot_code + 4, "Linux 98", 8) == 0)
@@ -36,11 +64,21 @@ index 3afa8a2..ea3cf4e 100644
 +	else if (memcmp (part_table->boot_code + 4, "GRUB/98 ", 8) == 0)
 +		return 1;
 +	else
-+		return 0;
+ 		return 0;
+-
+-	return 1;
  }
  
  static int
-@@ -192,27 +199,8 @@ pc98_probe (const PedDevice *dev)
+ pc98_probe (const PedDevice *dev)
+ {
+ 	PC98RawTable		part_table;
+-	int			empty;
+-	const PC98RawPartition*	p;
+ 
+ 	PED_ASSERT (dev != NULL);
+ 
+@@ -192,30 +167,8 @@ pc98_probe (const PedDevice *dev)
  	if (!pc98_check_magic (&part_table))
  		return 0;
  
@@ -65,11 +103,14 @@ index 3afa8a2..ea3cf4e 100644
 -
 -	/* Not to mistake msdos disk map for PC-9800's empty disk map  */
 -	if (empty)
+-		return 0;
+-
+-	return 1;
 +	/* check for boot loader signatures */
-+	if (!pc98_check_ipl_signature (&part_table))
- 		return 0;
++	return pc98_check_ipl_signature (&part_table);
+ }
  
- 	return 1;
+ static PedDisk*
 -- 
 1.7.6.4
 
diff --git a/parted.spec b/parted.spec
index efddf4a..a04231a 100644
--- a/parted.spec
+++ b/parted.spec
@@ -4,7 +4,7 @@
 Summary: The GNU disk partition manipulation program
 Name:    parted
 Version: 3.0
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: GPLv3+
 Group:   Applications/System
 URL:     http://www.gnu.org/software/parted
@@ -30,6 +30,7 @@ Patch9: parted-3.0-tests-test-for-the-nilfs2-bug.patch
 Patch10: parted-3.0-libparted-Fix-a-bug-in-the-hfs-probe-functions-71475.patch
 Patch11: parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch
 Patch12: parted-3.0-tests-add-tests-for-new-pc98-signatures-646053.patch
+Patch13: parted-3.0-copy-flags-when-duplicating-GPT-partitions-747497.patch
 
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: e2fsprogs-devel
@@ -158,6 +159,9 @@ fi
 
 
 %changelog
+* Thu Oct 27 2011 Brian C. Lane <bcl at redhat.com> - 3.0-4
+- Copy flags when duplicating GPT partitions (#747497)
+
 * Fri Oct 07 2011 Brian C. Lane <bcl at redhat.com> - 3.0-3
 - Fix handling of zero-length gpt partitions (#728949)
 - Fix bug in nilfs2 probe with short partitions (#728949)


More information about the scm-commits mailing list