Accepting request 143853 from Base:System

- udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch: 
  cookie_set=1 on each dm_task_set_cookie call (bnc#788882) (forwarded request 143764 from rmilasan)

OBS-URL: https://build.opensuse.org/request/show/143853
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lvm2?expand=0&rev=51
This commit is contained in:
Ismail Dönmez 2012-12-05 12:59:39 +00:00 committed by Git OBS Bridge
commit 1836f51a28
3 changed files with 74 additions and 0 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Nov 28 09:37:23 UTC 2012 - rmilasan@suse.com
- udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch:
cookie_set=1 on each dm_task_set_cookie call (bnc#788882)
-------------------------------------------------------------------
Mon Nov 12 10:41:45 UTC 2012 - seife+obs@b1-systems.com

View File

@ -62,6 +62,7 @@ Patch65: device-mapper-dmsetup-deps-export.patch
Patch66: device-mapper-type_punning.diff
Patch70: sleep-try-open-count.diff
Patch81: udev-rules_update.diff
Patch82: udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Not a real replacement but we drop evms
@ -97,6 +98,7 @@ Volume Manager.
%patch66 -p1
%patch70 -p1
%patch81 -p1
%patch82 -p1
%build
export MODPROBE_CMD=/sbin/modprobe

View File

@ -0,0 +1,66 @@
From a820a68619c10108666f8093545837233c954046 Mon Sep 17 00:00:00 2001
From: Peter Rajnoha <prajnoha@redhat.com>
Date: Tue, 23 Oct 2012 11:40:53 +0200
Subject: [PATCH] udev_sync: cookie_set=1 on each dm_task_set_cookie call
cookie_set variable found in the struct dm_task should be always
set to 1 after dm_task_set_cookie_call, even if udev_sync is disabled
as the cookie itself carries synchronization informations *as well as*
extra flags to control other aspects of udev support.
For example, one could disable the synchronization itself, but still
direct the libdm code to disable library fallback via
DM_UDEV_DISABLE_LIBRARY_FALLBACK flag. These extra flags still need
to be carried out!
A concrete example:
$ dmsetup create test --table "0 1 zero" --noudevsync
This disables synchronization with udev. As the --verifyudev option is
not used, we don't want to do any corrections. In other words, we
need DM_UDEV_DISABLE_LIBRARY_FALLBACK flag to be used. However,
with --noudevsync this was not the case - the flag was ignored!
This patch fixes the case when noudevsync is used but there are still
some extra flags passed within the cookie flag part. The synchronization
part of the cookie stays zero (which is ok as dm_udev_wait call on such a
cookie is simply a NOOP).
---
WHATS_NEW_DM | 1 +
libdm/libdm-common.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 2d0b05c..7c636f0 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,6 @@
Version 1.02.77 - 15th October 2012
===================================
+ Fix dm_task_set_cookie to properly process udev flags if udev_sync disabled.
Support unmount of thin volumes from pool above thin pool threshold.
Update man page to reflect that dm UUIDs are being mangled as well.
Apply 'dmsetup mangle' for dm UUIDs besides dm names.
diff --git a/libdm/libdm-common.c b/libdm/libdm-common.c
index b8533ed..afdac89 100644
--- a/libdm/libdm-common.c
+++ b/libdm/libdm-common.c
@@ -1838,6 +1838,7 @@ int dm_task_set_cookie(struct dm_task *dmt, uint32_t *cookie, uint16_t flags)
if (dm_cookie_supported())
dmt->event_nr = flags << DM_UDEV_FLAGS_SHIFT;
*cookie = 0;
+ dmt->cookie_set = 1;
return 1;
}
@@ -2207,6 +2208,7 @@ int dm_task_set_cookie(struct dm_task *dmt, uint32_t *cookie, uint16_t flags)
if (!dm_udev_get_sync_support()) {
*cookie = 0;
+ dmt->cookie_set = 1;
return 1;
}
--
1.7.10.4