File Import-ID_FS_XXX-variables-bnc909358.patch of Package lvm2.1005
Index: LVM2.2.02.98/libdm/ioctl/libdm-iface.c
===================================================================
--- LVM2.2.02.98.orig/libdm/ioctl/libdm-iface.c
+++ LVM2.2.02.98/libdm/ioctl/libdm-iface.c
@@ -1889,22 +1889,28 @@ repeat_ioctl:
switch (dmt->type) {
case DM_DEVICE_CREATE:
if ((dmt->add_node == DM_ADD_NODE_ON_CREATE) &&
- dev_name && *dev_name && !rely_on_udev)
+ dev_name && *dev_name && !rely_on_udev) {
+ log_error("Creating device node '%s'", dev_name);
add_dev_node(dev_name, MAJOR(dmi->dev),
MINOR(dmi->dev), dmt->uid, dmt->gid,
dmt->mode, check_udev, rely_on_udev);
+ }
break;
case DM_DEVICE_REMOVE:
/* FIXME Kernel needs to fill in dmi->name */
- if (dev_name && !rely_on_udev)
+ if (dev_name && !rely_on_udev) {
+ log_error("Removing device node '%s'", dev_name);
rm_dev_node(dev_name, check_udev, rely_on_udev);
+ }
break;
case DM_DEVICE_RENAME:
/* FIXME Kernel needs to fill in dmi->name */
- if (!dmt->new_uuid && dev_name)
+ if (!dmt->new_uuid && dev_name) {
+ log_error("Renaming device node '%s'", dev_name);
rename_dev_node(dev_name, dmt->newname,
check_udev, rely_on_udev);
+ }
break;
case DM_DEVICE_RESUME:
Index: LVM2.2.02.98/udev/13-dm-disk.rules.in
===================================================================
--- LVM2.2.02.98.orig/udev/13-dm-disk.rules.in
+++ LVM2.2.02.98/udev/13-dm-disk.rules.in
@@ -17,14 +17,21 @@ ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1
SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace"
ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace"
-ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
+ENV{DM_SUSPENDED}=="1", GOTO="dm_blkid_end"
ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end"
ENV{DM_NR_VALID_PATHS}=="0", GOTO="dm_blkid_end"
(BLKID_RULE)
LABEL="dm_blkid_end"
+# For a suspended or otherwise unavailable device we
+# need to import the variables from the database, otherwise
+# a service interruption might occur
+ENV{ID_FS_TYPE}!="?*", IMPORT{db}="ID_FS_TYPE"
+ENV{ID_FS_USAGE}!="?*", IMPORT{db}="ID_FS_USAGE"
+ENV{ID_FS_UUID}!="?*", IMPORT{db}="ID_FS_UUID"
+ENV{ID_FS_UUID_ENC}!="?*", IMPORT{db}="ID_FS_UUID_ENC"
+ENV{ID_FS_VERSION}!="?*", IMPORT{db}="ID_FS_VERSION"
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100"
-OPTIONS+="watch"
ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"