- Fixup last commit - call BLKRRPART only for DASDs
- added patches: * libparted-use-BLKRRPART-for-DASD.patch.patch - removed patches: * revert-libparted-remove-now-worse-than-useless-_kern.patch * revert-linux-remove-DASD-restriction-on-_disk_sync_p.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=88
This commit is contained in:
parent
117f4982e9
commit
f8b73f8a67
82
libparted-use-BLKRRPART-for-DASD.patch.patch
Normal file
82
libparted-use-BLKRRPART-for-DASD.patch.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From ac422c32ae3be0e599f7b3f4ab6961b61129c4ba Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Uzel <petr.uzel@suse.cz>
|
||||||
|
Date: Fri, 14 Feb 2014 09:12:47 +0100
|
||||||
|
Subject: [PATCH] libparted-used-BLKRRPART-for-DASD.patch
|
||||||
|
|
||||||
|
Addresses: bnc#862139
|
||||||
|
|
||||||
|
This reverts upstream commit 9fa0e1800db5b9f094ae481fd95a51da03f19e95.
|
||||||
|
This reverts upstream commit 1223b9fc07859cb619c80dc057bd05458f9b5669.
|
||||||
|
and some fixups on top
|
||||||
|
---
|
||||||
|
libparted/arch/linux.c | 50 ++++++++++++++++++++++++++++++++++++++++---------
|
||||||
|
1 file changed, 41 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
Index: parted-3.1/libparted/arch/linux.c
|
||||||
|
===================================================================
|
||||||
|
--- parted-3.1.orig/libparted/arch/linux.c
|
||||||
|
+++ parted-3.1/libparted/arch/linux.c
|
||||||
|
@@ -2898,6 +2898,34 @@ _dm_reread_part_table (PedDisk* disk)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int
|
||||||
|
+_kernel_reread_part_table (PedDevice* dev)
|
||||||
|
+{
|
||||||
|
+ LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
|
||||||
|
+ int retry_count = 9;
|
||||||
|
+
|
||||||
|
+ sync();
|
||||||
|
+ while (ioctl (arch_specific->fd, BLKRRPART)) {
|
||||||
|
+ retry_count--;
|
||||||
|
+ sync();
|
||||||
|
+ if (retry_count == 3)
|
||||||
|
+ sleep(1); /* Pause to allow system to settle */
|
||||||
|
+
|
||||||
|
+ if (!retry_count) {
|
||||||
|
+ ped_exception_throw (
|
||||||
|
+ PED_EXCEPTION_WARNING,
|
||||||
|
+ PED_EXCEPTION_IGNORE,
|
||||||
|
+ _("WARNING: the kernel failed to re-read the partition "
|
||||||
|
+ "table on %s (%s). As a result, it may not "
|
||||||
|
+ "reflect all of your changes until after reboot."),
|
||||||
|
+ dev->path, strerror (errno));
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
_have_blkpg ()
|
||||||
|
{
|
||||||
|
static int have_blkpg = -1;
|
||||||
|
@@ -2919,15 +2947,19 @@ linux_disk_commit (PedDisk* disk)
|
||||||
|
return _dm_reread_part_table (disk);
|
||||||
|
#endif
|
||||||
|
if (disk->dev->type != PED_DEVICE_FILE) {
|
||||||
|
-
|
||||||
|
- /* We now require BLKPG support. If this assertion fails,
|
||||||
|
- please write to the mailing list describing your system.
|
||||||
|
- Assuming it's never triggered, ...
|
||||||
|
- FIXME: remove this assertion in 2012. */
|
||||||
|
- assert (_have_blkpg ());
|
||||||
|
-
|
||||||
|
- if (!_disk_sync_part_table (disk))
|
||||||
|
- return 0;
|
||||||
|
+ /* The ioctl() command BLKPG_ADD_PARTITION does not notify
|
||||||
|
+ * the devfs system; consequently, /proc/partitions will not
|
||||||
|
+ * be up to date, and the proper links in /dev are not
|
||||||
|
+ * created. Therefore, if using DevFS, we must get the kernel
|
||||||
|
+ * to re-read and grok the partition table.
|
||||||
|
+ */
|
||||||
|
+ /* Work around kernel dasd problem so we really do BLKRRPART */
|
||||||
|
+ if (disk->dev->type == PED_DEVICE_DASD)
|
||||||
|
+ return _kernel_reread_part_table(disk->dev);
|
||||||
|
+
|
||||||
|
+ assert(_have_blkpg());
|
||||||
|
+ if (!_disk_sync_part_table(disk))
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
@ -1,4 +1,13 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 17 13:32:19 UTC 2014 - puzel@suse.com
|
||||||
|
|
||||||
|
- Fixup last commit - call BLKRRPART only for DASDs
|
||||||
|
- added patches:
|
||||||
|
* libparted-use-BLKRRPART-for-DASD.patch.patch
|
||||||
|
- removed patches:
|
||||||
|
* revert-libparted-remove-now-worse-than-useless-_kern.patch
|
||||||
|
* revert-linux-remove-DASD-restriction-on-_disk_sync_p.patch
|
||||||
|
-------------------------------------------------------------------
|
||||||
Fri Feb 14 08:30:06 UTC 2014 - puzel@suse.com
|
Fri Feb 14 08:30:06 UTC 2014 - puzel@suse.com
|
||||||
|
|
||||||
- Use BLKRRPART on DASD disks (instead of BLKPG_*) (bnc#862139)
|
- Use BLKRRPART on DASD disks (instead of BLKPG_*) (bnc#862139)
|
||||||
|
@ -58,8 +58,7 @@ Patch27: parted-GPT-add-support-for-PReP-GUID.patch
|
|||||||
Patch28: parted-resize-command.patch
|
Patch28: parted-resize-command.patch
|
||||||
Patch29: libparted-dasd-do-not-use-first-tracks.patch
|
Patch29: libparted-dasd-do-not-use-first-tracks.patch
|
||||||
Patch30: libparted-initialize-dasd-part-type.patch
|
Patch30: libparted-initialize-dasd-part-type.patch
|
||||||
Patch31: revert-linux-remove-DASD-restriction-on-_disk_sync_p.patch
|
Patch31: libparted-use-BLKRRPART-for-DASD.patch.patch
|
||||||
Patch32: revert-libparted-remove-now-worse-than-useless-_kern.patch
|
|
||||||
Patch100: parted-fatresize-autoconf.patch
|
Patch100: parted-fatresize-autoconf.patch
|
||||||
Requires: /sbin/udevadm
|
Requires: /sbin/udevadm
|
||||||
BuildRequires: check-devel
|
BuildRequires: check-devel
|
||||||
@ -139,7 +138,6 @@ to develop applications that require these.
|
|||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
%patch30 -p1
|
||||||
%patch31 -p1
|
%patch31 -p1
|
||||||
%patch32 -p1
|
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
From 59627048c1b5b6e6aed9198bb11c397b3ad8cddd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Petr Uzel <petr.uzel@suse.cz>
|
|
||||||
Date: Fri, 14 Feb 2014 09:18:32 +0100
|
|
||||||
Subject: [PATCH] Revert "libparted: remove now-worse-than-useless
|
|
||||||
_kernel_reread_part_table"
|
|
||||||
|
|
||||||
This reverts commit 1223b9fc07859cb619c80dc057bd05458f9b5669.
|
|
||||||
---
|
|
||||||
libparted/arch/linux.c | 30 ++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 30 insertions(+)
|
|
||||||
|
|
||||||
Index: parted-3.1/libparted/arch/linux.c
|
|
||||||
===================================================================
|
|
||||||
--- parted-3.1.orig/libparted/arch/linux.c
|
|
||||||
+++ parted-3.1/libparted/arch/linux.c
|
|
||||||
@@ -2897,6 +2897,34 @@ _dm_reread_part_table (PedDisk* disk)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
|
||||||
+_kernel_reread_part_table (PedDevice* dev)
|
|
||||||
+{
|
|
||||||
+ LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
|
|
||||||
+ int retry_count = 9;
|
|
||||||
+
|
|
||||||
+ sync();
|
|
||||||
+ while (ioctl (arch_specific->fd, BLKRRPART)) {
|
|
||||||
+ retry_count--;
|
|
||||||
+ sync();
|
|
||||||
+ if (retry_count == 3)
|
|
||||||
+ sleep(1); /* Pause to allow system to settle */
|
|
||||||
+
|
|
||||||
+ if (!retry_count) {
|
|
||||||
+ ped_exception_throw (
|
|
||||||
+ PED_EXCEPTION_WARNING,
|
|
||||||
+ PED_EXCEPTION_IGNORE,
|
|
||||||
+ _("WARNING: the kernel failed to re-read the partition "
|
|
||||||
+ "table on %s (%s). As a result, it may not "
|
|
||||||
+ "reflect all of your changes until after reboot."),
|
|
||||||
+ dev->path, strerror (errno));
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
_have_blkpg ()
|
|
||||||
{
|
|
||||||
static int have_blkpg = -1;
|
|
||||||
@@ -2931,6 +2959,8 @@ linux_disk_commit (PedDisk* disk)
|
|
||||||
ok = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (!_kernel_reread_part_table (disk->dev))
|
|
||||||
+ ok = 0;
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
|||||||
From 69cc320d6a8640dd8069e81ac02ee7d50fc1e8cd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Petr Uzel <petr.uzel@suse.cz>
|
|
||||||
Date: Fri, 14 Feb 2014 09:12:47 +0100
|
|
||||||
Subject: [PATCH] Revert "linux: remove DASD restriction on
|
|
||||||
_disk_sync_part_table"
|
|
||||||
|
|
||||||
This reverts commit 9fa0e1800db5b9f094ae481fd95a51da03f19e95.
|
|
||||||
---
|
|
||||||
libparted/arch/linux.c | 21 +++++++++++++--------
|
|
||||||
1 file changed, 13 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
Index: parted-3.1/libparted/arch/linux.c
|
|
||||||
===================================================================
|
|
||||||
--- parted-3.1.orig/libparted/arch/linux.c
|
|
||||||
+++ parted-3.1/libparted/arch/linux.c
|
|
||||||
@@ -2919,15 +2919,20 @@ linux_disk_commit (PedDisk* disk)
|
|
||||||
return _dm_reread_part_table (disk);
|
|
||||||
#endif
|
|
||||||
if (disk->dev->type != PED_DEVICE_FILE) {
|
|
||||||
+ /* The ioctl() command BLKPG_ADD_PARTITION does not notify
|
|
||||||
+ * the devfs system; consequently, /proc/partitions will not
|
|
||||||
+ * be up to date, and the proper links in /dev are not
|
|
||||||
+ * created. Therefore, if using DevFS, we must get the kernel
|
|
||||||
+ * to re-read and grok the partition table.
|
|
||||||
+ */
|
|
||||||
+ /* Work around kernel dasd problem so we really do BLKRRPART */
|
|
||||||
+ int ok = 1;
|
|
||||||
+ if (disk->dev->type != PED_DEVICE_DASD && _have_blkpg ()) {
|
|
||||||
+ if (!_disk_sync_part_table (disk))
|
|
||||||
+ ok = 0;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- /* We now require BLKPG support. If this assertion fails,
|
|
||||||
- please write to the mailing list describing your system.
|
|
||||||
- Assuming it's never triggered, ...
|
|
||||||
- FIXME: remove this assertion in 2012. */
|
|
||||||
- assert (_have_blkpg ());
|
|
||||||
-
|
|
||||||
- if (!_disk_sync_part_table (disk))
|
|
||||||
- return 0;
|
|
||||||
+ return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
Loading…
Reference in New Issue
Block a user