- tests: Make sure the extended partition length is 2 (#1135493)
- libparted: BLKPG_RESIZE_PARTITION uses bytes not sectors (#1135493)
This commit is contained in:
parent
123da5f5e2
commit
441cefc372
@ -0,0 +1,76 @@
|
||||
From 8b23531d1432c7ca0918c2a1c5a7f00ca881968c Mon Sep 17 00:00:00 2001
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Fri, 5 Jun 2015 13:46:29 -0700
|
||||
Subject: [PATCH 12/13] tests: Make sure the extended partition length is 2
|
||||
(#1135493)
|
||||
|
||||
parted tells the kernel the wrong length when reporting a resize of an
|
||||
extended partition.
|
||||
---
|
||||
tests/Makefile.am | 1 +
|
||||
tests/t2320-dos-extended-noclobber.sh | 41 +++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 42 insertions(+)
|
||||
create mode 100644 tests/t2320-dos-extended-noclobber.sh
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index ce8391d..001b9de 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -47,6 +47,7 @@ TESTS = \
|
||||
t2201-pc98-label-recog.sh \
|
||||
t2300-dos-label-extended-bootcode.sh \
|
||||
t2310-dos-extended-2-sector-min-offset.sh \
|
||||
+ t2320-dos-extended-noclobber.sh \
|
||||
t2400-dos-hfs-partition-type.sh \
|
||||
t2500-probe-corrupt-hfs.sh \
|
||||
t3000-resize-fs.sh \
|
||||
diff --git a/tests/t2320-dos-extended-noclobber.sh b/tests/t2320-dos-extended-noclobber.sh
|
||||
new file mode 100644
|
||||
index 0000000..1a4638a
|
||||
--- /dev/null
|
||||
+++ b/tests/t2320-dos-extended-noclobber.sh
|
||||
@@ -0,0 +1,41 @@
|
||||
+#!/bin/sh
|
||||
+# Ensure that the extended partition reports the correct length
|
||||
+# after adding another partition.
|
||||
+
|
||||
+# Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
||||
+
|
||||
+require_root_
|
||||
+require_scsi_debug_module_
|
||||
+
|
||||
+# create memory-backed device
|
||||
+ss=$sector_size_
|
||||
+scsi_debug_setup_ sector_size=$ss dev_size_mb=10 > dev-name ||
|
||||
+ skip_ 'failed to create scsi_debug device'
|
||||
+scsi_dev=$(cat dev-name)
|
||||
+
|
||||
+# Create a DOS label with an extended partition and a primary partition
|
||||
+parted -s $scsi_dev mklabel msdos || fail=1
|
||||
+parted -s $scsi_dev mkpart extended 1 5 > out 2>&1 || fail=1
|
||||
+parted -s $scsi_dev mkpart primary 5 10 > out 2>&1 || fail=1
|
||||
+
|
||||
+# Make sure the size of the extended partition is 2 sectors
|
||||
+dev=${scsi_dev#/dev/}
|
||||
+ext_len=$(cat /sys/block/$dev/${dev}1/size)
|
||||
+[ $ext_len -eq 2 ] || fail=1
|
||||
+
|
||||
+Exit $fail
|
||||
--
|
||||
2.4.0
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 1174a9cca1610611ad5d8cf9f3611e9d4c984fb0 Mon Sep 17 00:00:00 2001
|
||||
From: "Brian C. Lane" <bcl@redhat.com>
|
||||
Date: Fri, 5 Jun 2015 14:40:00 -0700
|
||||
Subject: [PATCH 13/13] libparted: BLKPG_RESIZE_PARTITION uses bytes, not
|
||||
sectors (#1135493)
|
||||
|
||||
This results in the extended partition vanishing after adding another
|
||||
partition.
|
||||
|
||||
Resolves: rhbz#1135493
|
||||
---
|
||||
libparted/arch/linux.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
|
||||
index 90ab21d..e73fe1c 100644
|
||||
--- a/libparted/arch/linux.c
|
||||
+++ b/libparted/arch/linux.c
|
||||
@@ -2547,7 +2547,10 @@ static int _blkpg_resize_partition (PedDisk* disk, const PedPartition *part)
|
||||
if (walk->geom.start == part->geom.start+1)
|
||||
linux_part.length = 1;
|
||||
}
|
||||
- } else linux_part.length = 1;
|
||||
+ } else {
|
||||
+ linux_part.length = 1;
|
||||
+ }
|
||||
+ linux_part.length *= disk->dev->sector_size;
|
||||
}
|
||||
else
|
||||
linux_part.length = part->geom.length * disk->dev->sector_size;
|
||||
--
|
||||
2.4.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
Summary: The GNU disk partition manipulation program
|
||||
Name: parted
|
||||
Version: 3.2
|
||||
Release: 7%{?dist}
|
||||
Release: 8%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Applications/System
|
||||
URL: http://www.gnu.org/software/parted
|
||||
@ -25,6 +25,8 @@ Patch0008: 0008-parted-don-t-crash-in-disk_set-when-disk-label-not-f.patch
|
||||
Patch0009: 0009-tests-Add-a-test-for-device-mapper-partition-sizes.patch
|
||||
Patch0010: 0010-libparted-device-mapper-uses-512b-sectors.patch
|
||||
Patch0011: 0011-Update-manpage-NAME-so-whatis-will-work.patch
|
||||
Patch0012: 0012-tests-Make-sure-the-extended-partition-length-is-2-1.patch
|
||||
Patch0013: 0013-libparted-BLKPG_RESIZE_PARTITION-uses-bytes-not-sect.patch
|
||||
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: e2fsprogs-devel
|
||||
@ -167,6 +169,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Jun 05 2015 Brian C. Lane <bcl@redhat.com> 3.2-8
|
||||
- tests: Make sure the extended partition length is 2 (#1135493)
|
||||
- libparted: BLKPG_RESIZE_PARTITION uses bytes not sectors (#1135493)
|
||||
|
||||
* Tue Apr 28 2015 Brian C. Lane <bcl@redhat.com> 3.2-7
|
||||
- Add python2 as a BuildRequires, used in some of the tests
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user