mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-11 20:58:50 +03:00
Add support to disable udev checking: LVM_UDEV_DISABLE_CHECKING=1 env. var.
LVM_UDEV_DISABLE_CHECKING=1 applies for /dev/<vgname> content only. We still need to define DM_UDEV_DISABLE_CHECKING=1 for /dev/mapper content.
This commit is contained in:
parent
d2b43c4b34
commit
a750353641
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.57 -
|
Version 2.02.57 -
|
||||||
====================================
|
====================================
|
||||||
|
Add support to disable udev checking: LVM_UDEV_DISABLE_CHECKING=1 env. var.
|
||||||
Add redundant mirror log option.
|
Add redundant mirror log option.
|
||||||
Add capability to split off and keep mirror legs to lvconvert.
|
Add capability to split off and keep mirror legs to lvconvert.
|
||||||
Change background polldaemon's process name to "(lvm2)".
|
Change background polldaemon's process name to "(lvm2)".
|
||||||
|
@ -166,7 +166,7 @@ static int _mk_link(const char *dev_dir, const char *vg_name,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dm_udev_get_sync_support() && check_udev) {
|
if (dm_udev_get_sync_support() && udev_checking() && check_udev) {
|
||||||
/* Check udev created the correct link. */
|
/* Check udev created the correct link. */
|
||||||
if (!stat(link_path, &buf_lp) &&
|
if (!stat(link_path, &buf_lp) &&
|
||||||
!stat(lv_path, &buf)) {
|
!stat(lv_path, &buf)) {
|
||||||
@ -190,7 +190,7 @@ static int _mk_link(const char *dev_dir, const char *vg_name,
|
|||||||
log_sys_error("unlink", lv_path);
|
log_sys_error("unlink", lv_path);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else if (dm_udev_get_sync_support() && check_udev)
|
} else if (dm_udev_get_sync_support() && udev_checking() && check_udev)
|
||||||
log_warn("The link %s should had been created by udev "
|
log_warn("The link %s should had been created by udev "
|
||||||
"but it was not found. Falling back to "
|
"but it was not found. Falling back to "
|
||||||
"direct link creation.", lv_path);
|
"direct link creation.", lv_path);
|
||||||
@ -221,7 +221,7 @@ static int _rm_link(const char *dev_dir, const char *vg_name,
|
|||||||
|
|
||||||
if (lstat(lv_path, &buf) && errno == ENOENT)
|
if (lstat(lv_path, &buf) && errno == ENOENT)
|
||||||
return 1;
|
return 1;
|
||||||
else if (dm_udev_get_sync_support() && check_udev)
|
else if (dm_udev_get_sync_support() && udev_checking() && check_udev)
|
||||||
log_warn("The link %s should have been removed by udev "
|
log_warn("The link %s should have been removed by udev "
|
||||||
"but it is still present. Falling back to "
|
"but it is still present. Falling back to "
|
||||||
"direct link removal.", lv_path);
|
"direct link removal.", lv_path);
|
||||||
|
@ -39,6 +39,7 @@ static int _background_polling = DEFAULT_BACKGROUND_POLLING;
|
|||||||
static int _ignore_suspended_devices = 0;
|
static int _ignore_suspended_devices = 0;
|
||||||
static int _error_message_produced = 0;
|
static int _error_message_produced = 0;
|
||||||
static unsigned _is_static = 0;
|
static unsigned _is_static = 0;
|
||||||
|
static int _udev_checking = 1;
|
||||||
|
|
||||||
void init_verbose(int level)
|
void init_verbose(int level)
|
||||||
{
|
{
|
||||||
@ -112,6 +113,14 @@ void init_is_static(unsigned value)
|
|||||||
_is_static = value;
|
_is_static = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void init_udev_checking(int checking)
|
||||||
|
{
|
||||||
|
if ((_udev_checking = checking))
|
||||||
|
log_debug("LVM udev checking enabled");
|
||||||
|
else
|
||||||
|
log_debug("LVM udev checking disabled");
|
||||||
|
}
|
||||||
|
|
||||||
void set_cmd_name(const char *cmd)
|
void set_cmd_name(const char *cmd)
|
||||||
{
|
{
|
||||||
strncpy(_cmd_name, cmd, sizeof(_cmd_name));
|
strncpy(_cmd_name, cmd, sizeof(_cmd_name));
|
||||||
@ -210,3 +219,8 @@ unsigned is_static(void)
|
|||||||
{
|
{
|
||||||
return _is_static;
|
return _is_static;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int udev_checking(void)
|
||||||
|
{
|
||||||
|
return _udev_checking;
|
||||||
|
}
|
||||||
|
@ -36,6 +36,7 @@ void init_background_polling(int polling);
|
|||||||
void init_ignore_suspended_devices(int ignore);
|
void init_ignore_suspended_devices(int ignore);
|
||||||
void init_error_message_produced(int produced);
|
void init_error_message_produced(int produced);
|
||||||
void init_is_static(unsigned value);
|
void init_is_static(unsigned value);
|
||||||
|
void init_udev_checking(int checking);
|
||||||
|
|
||||||
void set_cmd_name(const char *cmd_name);
|
void set_cmd_name(const char *cmd_name);
|
||||||
|
|
||||||
@ -54,6 +55,7 @@ int background_polling(void);
|
|||||||
int ignore_suspended_devices(void);
|
int ignore_suspended_devices(void);
|
||||||
const char *log_command_name(void);
|
const char *log_command_name(void);
|
||||||
unsigned is_static(void);
|
unsigned is_static(void);
|
||||||
|
int udev_checking(void);
|
||||||
|
|
||||||
#define DMEVENTD_MONITOR_IGNORE -1
|
#define DMEVENTD_MONITOR_IGNORE -1
|
||||||
int dmeventd_monitor_mode(void);
|
int dmeventd_monitor_mode(void);
|
||||||
|
@ -909,6 +909,19 @@ static void _apply_settings(struct cmd_context *cmd)
|
|||||||
cmd->handles_missing_pvs = 0;
|
cmd->handles_missing_pvs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _set_udev_checking()
|
||||||
|
{
|
||||||
|
const char *e;
|
||||||
|
|
||||||
|
if ((e = getenv("DM_UDEV_DISABLE_CHECKING")) &&
|
||||||
|
!strcmp(e, "1"))
|
||||||
|
dm_udev_set_checking(0);
|
||||||
|
|
||||||
|
if ((e = getenv("LVM_UDEV_DISABLE_CHECKING")) &&
|
||||||
|
!strcmp(e, "1"))
|
||||||
|
init_udev_checking(0);
|
||||||
|
}
|
||||||
|
|
||||||
static const char *_copy_command_line(struct cmd_context *cmd, int argc, char **argv)
|
static const char *_copy_command_line(struct cmd_context *cmd, int argc, char **argv)
|
||||||
{
|
{
|
||||||
int i, space;
|
int i, space;
|
||||||
@ -1003,6 +1016,8 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
|
|||||||
log_debug("O_DIRECT will be used");
|
log_debug("O_DIRECT will be used");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
_set_udev_checking();
|
||||||
|
|
||||||
if ((ret = _process_common_commands(cmd)))
|
if ((ret = _process_common_commands(cmd)))
|
||||||
goto_out;
|
goto_out;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user