Avoid exposing temporary devices when initializing thin pool volume.

This commit is contained in:
Peter Rajnoha 2014-01-27 11:22:56 +01:00
parent 3422829f0b
commit 987c15a436
3 changed files with 83 additions and 2 deletions

View File

@ -0,0 +1,63 @@
commit bb237a04a0ecd44157ee59ce280e8c3bfc456ca1
Author: Peter Rajnoha <prajnoha@redhat.com>
Date: Mon Jan 27 11:19:09 2014 +0100
thin pool
diff --git a/WHATS_NEW b/WHATS_NEW
index 26b63ae..b755720 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,3 +1,7 @@
+Version 2.02.105 -
+====================================
+ Avoid exposing temporary devices when initializing thin pool volume.
+
Version 2.02.105 - 20th January 2014
====================================
Fix thin LV flagging for udev to skip scanning only if the LV is wiped.
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
index 8e36891..cc58941 100644
--- a/lib/metadata/metadata-exported.h
+++ b/lib/metadata/metadata-exported.h
@@ -105,9 +105,10 @@
#define LV_NOSCAN UINT64_C(0x0000080000000000) /* LV - internal use only - the LV
should not be scanned */
#define LV_TEMPORARY UINT64_C(0x0000100000000000) /* LV - internal use only - the LV
- is supposed to be created and
- removed during single LVM
- command execution. */
+ is supposed to be created and
+ removed or reactivated with
+ this flag dropped during single
+ LVM command execution. */
/* Format features flags */
#define FMT_SEGMENTS 0x00000001U /* Arbitrary segment params? */
diff --git a/lib/metadata/thin_manip.c b/lib/metadata/thin_manip.c
index e12a8ad..3eeb757 100644
--- a/lib/metadata/thin_manip.c
+++ b/lib/metadata/thin_manip.c
@@ -484,7 +484,13 @@ int create_pool(struct logical_volume *pool_lv, const struct segment_type *segty
*
* FIXME: implement lazy clearing when activation is disabled
*/
- /* pool_lv is a new LV so the VG lock protects us */
+ /*
+ * pool_lv is a new LV so the VG lock protects us
+ * Pass in LV_TEMPORARY flag, since device is activated purely for wipe
+ * and later it is either deactivated (in cluster)
+ * or directly converted to invisible device via suspend/resume
+ */
+ pool_lv->status |= LV_TEMPORARY;
if (!activate_lv_local(pool_lv->vg->cmd, pool_lv) ||
/* Clear 4KB of metadata device for new thin-pool. */
!wipe_lv(pool_lv, (struct wipe_params) { .do_zero = 1 })) {
@@ -492,6 +498,7 @@ int create_pool(struct logical_volume *pool_lv, const struct segment_type *segty
pool_lv->name);
goto bad;
}
+ pool_lv->status &= ~LV_TEMPORARY;
}
if (dm_snprintf(name, sizeof(name), "%s_tmeta", pool_lv->name) < 0) {

View File

@ -1,6 +1,21 @@
udev/10-dm.rules.in | 6 ------
1 file changed, 6 deletions(-)
commit e624fc8c0e75ea363e27cff824ca5a4521d051a7
Author: Peter Rajnoha <prajnoha@redhat.com>
Date: Mon Jan 27 11:13:02 2014 +0100
udev - cryptsetup
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index ce302f3..5aa3892 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,3 +1,7 @@
+Version 1.02.85 -
+===================================
+ Drop cryptsetup rules from 10-dm.rules - cryptsetup >= 1.1.3 sets them.
+
Version 1.02.84 - 20th January 2014
===================================
Revert activation of activated nodes if a node preload callback fails.
diff --git a/udev/10-dm.rules.in b/udev/10-dm.rules.in
index f7088f1..8d7a8ca 100644
--- a/udev/10-dm.rules.in

View File

@ -45,6 +45,7 @@ Source0: ftp://sources.redhat.com/pub/lvm2/releases/LVM2.%{version}.tgz
Patch0: lvm2-set-default-preferred_names.patch
Patch1: lvm2-enable-lvmetad-by-default.patch
Patch2: lvm2-udev-remove-rules-to-handle-inappropriate-events.patch
Patch3: lvm2-2_02_106-avoid-exposing-temporary-devices-when-initializing-thin-pool-volume.patch
BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
BuildRequires: libblkid-devel >= %{util_linux_version}
@ -83,6 +84,7 @@ or more physical volumes and creating one or more logical volumes
%patch0 -p1 -b .preferred_names
%patch1 -p1 -b .enable_lvmetad
%patch2 -p1 -b .udev_inappropriate_events
%patch3 -p1 -b .thin_temp_no_expose
%build
%define _default_pid_dir /run
@ -591,6 +593,7 @@ the device-mapper event library.
%changelog
* Mon Jan 27 2014 Peter Rajnoha <prajnoha@redhat.com> - 2.02.105-2
- Avoid exposing temporary devices when initializing thin pool volume.
- Remove udev rule for multipath's PATH_FAILED event processing,
multipath handles that properly in its own udev rules now.
- Remove duplicate udev rule for cryptsetup temporary devices,