File Import-ID_FS_XXX-variables-bnc909358.patch of Package lvm2.631
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
@@ -1680,7 +1680,7 @@ static struct dm_ioctl *_do_dm_ioctl(str
* libdevmapper's node and symlink creation code.
*/
if (!dmt->cookie_set && dm_udev_get_sync_support()) {
- log_debug("Cookie value is not set while trying to call %s "
+ log_error("Cookie value is not set while trying to call %s "
"ioctl. Please, consider using libdevmapper's udev "
"synchronisation interface or disable it explicitly "
"by calling dm_udev_set_sync_support(0).",
@@ -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/libdm/libdm-common.c
===================================================================
--- LVM2.2.02.98.orig/libdm/libdm-common.c
+++ LVM2.2.02.98/libdm/libdm-common.c
@@ -2228,7 +2228,7 @@ int dm_task_set_cookie(struct dm_task *d
dmt->event_nr |= ~DM_UDEV_FLAGS_MASK & *cookie;
dmt->cookie_set = 1;
- log_debug("Udev cookie 0x%" PRIx32 " (semid %d) assigned to "
+ log_error("Udev cookie 0x%" PRIx32 " (semid %d) assigned to "
"%s task(%d) with flags%s%s%s%s%s%s%s (0x%" PRIx16 ")", *cookie, semid, _task_type_disp(dmt->type), dmt->type,
(flags & DM_UDEV_DISABLE_DM_RULES_FLAG) ? " DISABLE_DM_RULES" : "",
(flags & DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG) ? " DISABLE_SUBSYSTEM_RULES" : "",
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}"