diff --git a/udisks2-Reread-partition-table-before-wiping.patch b/udisks2-Reread-partition-table-before-wiping.patch new file mode 100644 index 0000000..9bf8faf --- /dev/null +++ b/udisks2-Reread-partition-table-before-wiping.patch @@ -0,0 +1,45 @@ +From 5c859c99dfcd362599eb497760231e7aa816c070 Mon Sep 17 00:00:00 2001 +From: Mathieu Trudel-Lapierre +Date: Mon, 4 Apr 2016 11:35:03 +0200 +Subject: Reread partition table before wiping when creating new partitions + +https://bugs.freedesktop.org/show_bug.cgi?id=85477 +https://bugs.debian.org/767457 +https://launchpad.net/bugs/1460602 + +diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c +index 2692b31..7870ca8 100644 +--- a/src/udiskslinuxpartitiontable.c ++++ b/src/udiskslinuxpartitiontable.c +@@ -343,6 +343,7 @@ handle_create_partition (UDisksPartitionTable *table, + uid_t caller_uid; + gid_t caller_gid; + gboolean do_wipe = TRUE; ++ gboolean was_partitioned = FALSE; + GError *error; + + error = NULL; +@@ -589,6 +590,10 @@ handle_create_partition (UDisksPartitionTable *table, + /* this is sometimes needed because parted(8) does not generate the uevent itself */ + udisks_linux_block_object_trigger_uevent (UDISKS_LINUX_BLOCK_OBJECT (object)); + ++ was_partitioned = (udisks_object_peek_partition_table (object) != NULL); ++ if (was_partitioned) ++ udisks_linux_block_object_reread_partition_table (UDISKS_LINUX_BLOCK_OBJECT (object)); ++ + /* sit and wait for the partition to show up */ + g_warn_if_fail (wait_data->pos_to_wait_for > 0); + wait_data->partition_table_object = object; +@@ -644,6 +649,8 @@ handle_create_partition (UDisksPartitionTable *table, + /* this is sometimes needed because parted(8) does not generate the uevent itself */ + udisks_linux_block_object_trigger_uevent (UDISKS_LINUX_BLOCK_OBJECT (partition_object)); + ++ if (was_partitioned) ++ udisks_linux_block_object_reread_partition_table (UDISKS_LINUX_BLOCK_OBJECT (object)); + + udisks_partition_table_complete_create_partition (table, + invocation, +-- +cgit v0.10.2 + + diff --git a/udisks2.changes b/udisks2.changes index 383147c..4c848af 100644 --- a/udisks2.changes +++ b/udisks2.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 15 14:43:34 UTC 2016 - zaitor@opensuse.org + +- Add udisks2-Reread-partition-table-before-wiping.patch: Reread + partition table before wiping when creating new partitions + (fdo#85477). + ------------------------------------------------------------------- Fri Mar 4 07:46:25 UTC 2016 - sor.alexei@meowr.ru diff --git a/udisks2.spec b/udisks2.spec index 994828f..77738bf 100644 --- a/udisks2.spec +++ b/udisks2.spec @@ -27,6 +27,8 @@ Url: http://freedesktop.org/wiki/Software/udisks Source: http://udisks.freedesktop.org/releases/%{_name}-%{version}.tar.bz2 Source1: http://udisks.freedesktop.org/releases/%{_name}-%{version}.tar.bz2.sign Source2: %{name}.keyring +# PATCH-FIX-UPSTREAM udisks2-Reread-partition-table-before-wiping.patch fdo#85477 zaitor@opensuse.org -- Reread partition table before wiping when creating new partitions +Patch0: udisks2-Reread-partition-table-before-wiping.patch # Needed to build the man pages. BuildRequires: docbook-xsl-stylesheets BuildRequires: intltool @@ -92,6 +94,7 @@ for managing disks and storage devices. %prep %setup -q -n %{_name}-%{version} +%patch0 -p1 %build export V=1