--- a/device_mapper/libdm-common.c +++ b/device_mapper/libdm-common.c @@ -619,7 +619,7 @@ static int _dm_task_set_name_from_path(s /* * Found directly. * If supplied path points to same device as last component - * under /dev/mapper, use that name directly. + * under /dev/mapper, use that name directly. */ if (dm_snprintf(buf, sizeof(buf), "%s/%s", _dm_dir, name) == -1) { log_error("Couldn't create path for %s", name); @@ -1371,7 +1371,7 @@ static int _set_dev_node_read_ahead(cons if (current_read_ahead >= read_ahead) { log_debug_activation("%s: retaining kernel read ahead of %" PRIu32 - " (requested %" PRIu32 ")", + " (requested %" PRIu32 ")", dev_name, current_read_ahead, read_ahead); return 1; } @@ -2190,6 +2190,8 @@ int dm_mknodes(const char *name) { struct dm_task *dmt; int r = 0; + uint32_t cookie = 0; + uint16_t udev_flags = 0; if (!(dmt = dm_task_create(DM_DEVICE_MKNODES))) return_0; @@ -2200,6 +2202,13 @@ int dm_mknodes(const char *name) if (!dm_task_no_open_count(dmt)) goto out; + /* always disable library fallback */ + udev_flags |= DM_UDEV_DISABLE_LIBRARY_FALLBACK; + r = dm_task_set_cookie(dmt, &cookie, udev_flags); + if (r == 0) { + goto out; + } + r = dm_task_run(dmt); out: