[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