summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch
new file mode 100644
index 000000000..a864f1e21
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-activation-add-synchronization-point.patch
@@ -0,0 +1,82 @@
+From f8466749dd73f5b0ccf4fc86c8a7585c4140b3f9 Mon Sep 17 00:00:00 2001
+From: Zdenek Kabelac <zkabelac@redhat.com>
+Date: Fri, 16 Aug 2019 23:49:59 +0200
+Subject: [PATCH 1/3] activation: add synchronization point
+
+Resuming of 'error' table entry followed with it's dirrect removal
+is now troublesame with latest udev as it may skip processing of
+udev rules for already 'dropped' device nodes.
+
+As we cannot 'synchronize' with udev while we know we have devices
+in suspended state - rework 'cleanup' so it collects nodes
+for removal into pending_delete list and process the list with
+synchronization once we are without any suspended nodes.
+
+Upstream-Status: Backport
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ WHATS_NEW | 9 +++++++++
+ lib/activate/dev_manager.c | 20 ++++++++++++--------
+ 2 files changed, 21 insertions(+), 8 deletions(-)
+
+diff --git a/WHATS_NEW b/WHATS_NEW
+index 3a58de5f9..0b48e032b 100644
+--- a/WHATS_NEW
++++ b/WHATS_NEW
+@@ -1,3 +1,12 @@
++Version 2.03.06 -
++================================
++ Synchronize with udev when dropping snapshot.
++ Add missing device synchronization point before removing pvmove node.
++ Correctly set read_ahead for LVs when pvmove is finished.
++ Remove unsupported OPTIONS+="event_timeout" udev rule from 11-dm-lvm.rules.
++ Prevent creating VGs with PVs with different logical block sizes.
++ Fix metadata writes from corrupting with large physical block size.
++
+ Version 2.03.05 - 15th June 2019
+ ================================
+ Fix command definition for pvchange -a.
+diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
+index 981f4674a..7101ffa12 100644
+--- a/lib/activate/dev_manager.c
++++ b/lib/activate/dev_manager.c
+@@ -3558,13 +3558,6 @@ static int _clean_tree(struct dev_manager *dm, struct dm_tree_node *root, const
+ const char *name, *uuid;
+ struct dm_str_list *dl;
+
+- /* Deactivate any tracked pending delete nodes */
+- dm_list_iterate_items(dl, &dm->pending_delete) {
+- log_debug_activation("Deleting tracked UUID %s.", dl->str);
+- if (!dm_tree_deactivate_children(root, dl->str, strlen(dl->str)))
+- return_0;
+- }
+-
+ while ((child = dm_tree_next_child(&handle, root, 0))) {
+ if (!(name = dm_tree_node_get_name(child)))
+ continue;
+@@ -3585,10 +3578,21 @@ static int _clean_tree(struct dev_manager *dm, struct dm_tree_node *root, const
+ if (non_toplevel_tree_dlid && !strcmp(non_toplevel_tree_dlid, uuid))
+ continue;
+
+- if (!dm_tree_deactivate_children(root, uuid, strlen(uuid)))
++ if (!str_list_add(dm->mem, &dm->pending_delete, uuid))
+ return_0;
+ }
+
++ /* Deactivate any tracked pending delete nodes */
++ if (!dm_list_empty(&dm->pending_delete) && !dm_get_suspended_counter()) {
++ fs_unlock();
++ dm_tree_set_cookie(root, fs_get_cookie());
++ dm_list_iterate_items(dl, &dm->pending_delete) {
++ log_debug_activation("Deleting tracked UUID %s.", dl->str);
++ if (!dm_tree_deactivate_children(root, dl->str, strlen(dl->str)))
++ return_0;
++ }
++ }
++
+ return 1;
+ }
+
+--
+2.21.0
+