Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 317180 Details for
Bug 424810
sys-fs/lvm2 does not compile against >=sys-fs/udev-186
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
upstream commit 06738cac051b671ed26bd137676713eab457b37f without NEWS file
lvm2-udev.patch (text/plain), 6.29 KB, created by
Marien Zwart (RETIRED)
on 2012-07-04 22:40:36 UTC
(
hide
)
Description:
upstream commit 06738cac051b671ed26bd137676713eab457b37f without NEWS file
Filename:
MIME Type:
Creator:
Marien Zwart (RETIRED)
Created:
2012-07-04 22:40:36 UTC
Size:
6.29 KB
patch
obsolete
>commit 06738cac051b671ed26bd137676713eab457b37f >Author: Peter Rajnoha <prajnoha@redhat.com> >Date: Tue May 29 08:09:10 2012 +0000 > > Remove unsupported udev_get_dev_path libudev call used for checking udev dir. > > With latest changes in the udev, some deprecated functions were removed > from libudev amongst which there was the "udev_get_dev_path" function > we used to compare a device directory used in udev and directore set in > libdevmapper. The "/dev" is hardcoded in udev now (udev version >= 183). > > Amongst other changes and from packager's point of view, it's also > important to note that the libudev development library ("libudev-devel") > could now be a part of the systemd development library ("systemd-devel") > because of the udev + systemd merge. > >diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c >index 78f0801..cc23163 100644 >--- a/lib/commands/toolcontext.c >+++ b/lib/commands/toolcontext.c >@@ -650,9 +650,9 @@ static int _init_dev_cache(struct cmd_context *cmd) > { > const struct dm_config_node *cn; > const struct dm_config_value *cv; >- size_t uninitialized_var(udev_dir_len), len; >+ size_t len, udev_dir_len = strlen(DM_UDEV_DEV_DIR); >+ int len_diff; > int device_list_from_udev; >- const char *uninitialized_var(udev_dir); > > init_dev_disable_after_error_count( > find_config_tree_int(cmd, "devices/disable_after_error_count", >@@ -661,13 +661,9 @@ static int _init_dev_cache(struct cmd_context *cmd) > if (!dev_cache_init(cmd)) > return_0; > >- if ((device_list_from_udev = udev_is_running() ? >+ device_list_from_udev = udev_is_running() ? > find_config_tree_bool(cmd, "devices/obtain_device_list_from_udev", >- DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV) : 0)) { >- if (!(udev_dir = udev_get_dev_dir())) >- stack; >- udev_dir_len = (udev_dir) ? strlen(udev_dir) : 0; >- } >+ DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV) : 0; > init_obtain_device_list_from_udev(device_list_from_udev); > > if (!(cn = find_config_tree_node(cmd, "devices/scan"))) { >@@ -688,11 +684,19 @@ static int _init_dev_cache(struct cmd_context *cmd) > return 0; > } > >- if (device_list_from_udev && udev_dir) { >+ if (device_list_from_udev) { > len = strlen(cv->v.str); >- len = udev_dir_len > len ? len : udev_dir_len; >- if (strncmp(udev_dir, cv->v.str, len) || >- udev_dir[len] != cv->v.str[len]) { >+ >+ /* >+ * DM_UDEV_DEV_DIR always has '/' at its end. >+ * If the item in the conf does not have it, be sure >+ * to make the right comparison without the '/' char! >+ */ >+ len_diff = len && cv->v.str[len - 1] != '/' ? >+ udev_dir_len - 1 != len : >+ udev_dir_len != len; >+ >+ if (len_diff || strncmp(DM_UDEV_DEV_DIR, cv->v.str, len)) { > device_list_from_udev = 0; > init_obtain_device_list_from_udev(0); > } >diff --git a/lib/misc/lvm-wrappers.c b/lib/misc/lvm-wrappers.c >index 84f61a6..6cffae3 100644 >--- a/lib/misc/lvm-wrappers.c >+++ b/lib/misc/lvm-wrappers.c >@@ -65,16 +65,6 @@ bad: > return 0; > } > >-const char *udev_get_dev_dir(void) >-{ >- if (!_udev) { >- log_debug(_no_context_msg); >- return NULL; >- } >- >- return udev_get_dev_path(_udev); >-} >- > struct udev* udev_get_library_context(void) > { > return _udev; >@@ -96,10 +86,6 @@ int udev_is_running(void) > return 0; > } > >-const char *udev_get_dev_dir(void) >-{ >- return NULL; >-} > #endif > > int lvm_getpagesize(void) >diff --git a/lib/misc/lvm-wrappers.h b/lib/misc/lvm-wrappers.h >index f5b381c..e43f831 100644 >--- a/lib/misc/lvm-wrappers.h >+++ b/lib/misc/lvm-wrappers.h >@@ -24,7 +24,6 @@ struct udev *udev_get_library_context(void); > int udev_init_library_context(void); > void udev_fin_library_context(void); > int udev_is_running(void); >-const char *udev_get_dev_dir(void); > > int lvm_getpagesize(void); > >diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h >index 7df4db8..1f780a3 100644 >--- a/libdm/libdevmapper.h >+++ b/libdm/libdevmapper.h >@@ -1500,6 +1500,9 @@ struct dm_config_node *dm_config_clone_node(struct dm_config_tree *cft, const st > > struct dm_pool *dm_config_memory(struct dm_config_tree *cft); > >+/* Udev device directory. */ >+#define DM_UDEV_DEV_DIR "/dev/" >+ > /* Cookie prefixes. > * > * The cookie value consists of a prefix (16 bits) and a base (16 bits). >diff --git a/tools/dmsetup.c b/tools/dmsetup.c >index 6934de8..2787b76 100644 >--- a/tools/dmsetup.c >+++ b/tools/dmsetup.c >@@ -1008,11 +1008,9 @@ static int _udevcookies(CMD_ARGS) > #else /* UDEV_SYNC_SUPPORT */ > static int _set_up_udev_support(const char *dev_dir) > { >- struct udev *udev; >- const char *udev_dev_dir; >- size_t udev_dev_dir_len; > int dirs_diff; > const char *env; >+ size_t len = strlen(dev_dir), udev_dir_len = strlen(DM_UDEV_DEV_DIR); > > if (_switches[NOUDEVSYNC_ARG]) > dm_udev_set_sync_support(0); >@@ -1030,14 +1028,6 @@ static int _set_up_udev_support(const char *dev_dir) > " defined by --udevcookie option.", > _udev_cookie); > >- if (!(udev = udev_new()) || >- !(udev_dev_dir = udev_get_dev_path(udev)) || >- !*udev_dev_dir) { >- log_error("Could not get udev dev path."); >- return 0; >- } >- udev_dev_dir_len = strlen(udev_dev_dir); >- > /* > * Normally, there's always a fallback action by libdevmapper if udev > * has not done its job correctly, e.g. the nodes were not created. >@@ -1049,12 +1039,17 @@ static int _set_up_udev_support(const char *dev_dir) > * is the same as "dev path" used by libdevmapper. > */ > >- /* There's always a slash at the end of dev_dir. But check udev_dev_dir! */ >- if (udev_dev_dir[udev_dev_dir_len - 1] != '/') >- dirs_diff = strncmp(dev_dir, udev_dev_dir, udev_dev_dir_len); >- else >- dirs_diff = strcmp(dev_dir, udev_dev_dir); > >+ /* >+ * DM_UDEV_DEV_DIR always has '/' at its end. >+ * If the dev_dir does not have it, be sure >+ * to make the right comparison without the '/' char! >+ */ >+ if (dev_dir[len - 1] != '/') >+ udev_dir_len--; >+ >+ dirs_diff = udev_dir_len != len || >+ strncmp(DM_UDEV_DEV_DIR, dev_dir, len); > _udev_only = !dirs_diff && (_udev_cookie || !_switches[VERIFYUDEV_ARG]); > > if (dirs_diff) { >@@ -1064,11 +1059,10 @@ static int _set_up_udev_support(const char *dev_dir) > "about udev not working correctly while processing " > "particular nodes will be suppressed. These nodes " > "and symlinks will be managed in each directory " >- "separately.", dev_dir, udev_dev_dir); >+ "separately.", dev_dir, DM_UDEV_DEV_DIR); > dm_udev_set_checking(0); > } > >- udev_unref(udev); > return 1; > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 424810
: 317180