mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-04 09:18:36 +03:00
Add --noudevrules option for dmsetup to disable /dev node management by udev.
This commit is contained in:
parent
387f47078c
commit
4998a0041f
@ -1,5 +1,6 @@
|
|||||||
Version 1.02.41 -
|
Version 1.02.41 -
|
||||||
====================================
|
====================================
|
||||||
|
Add --noudevrules option for dmsetup to disable /dev node management by udev.
|
||||||
Update code to show all fields for 'dmsetup info -c -o all'.
|
Update code to show all fields for 'dmsetup info -c -o all'.
|
||||||
Return error from dm_tree_deactivate_children().
|
Return error from dm_tree_deactivate_children().
|
||||||
Return error from dm_tree_suspend_children().
|
Return error from dm_tree_suspend_children().
|
||||||
|
@ -127,6 +127,9 @@ Tell the kernel not to supply the open reference count for the device.
|
|||||||
.IP \fB--notable
|
.IP \fB--notable
|
||||||
.br
|
.br
|
||||||
When creating a device, don't load any table.
|
When creating a device, don't load any table.
|
||||||
|
.IP \fB--noudevrules
|
||||||
|
Do not allow udev to manage nodes for devices in device-mapper directory.
|
||||||
|
.br
|
||||||
.IP \fB--noudevsync
|
.IP \fB--noudevsync
|
||||||
Do not synchronise with udev when creating, renaming or removing devices.
|
Do not synchronise with udev when creating, renaming or removing devices.
|
||||||
.br
|
.br
|
||||||
|
@ -127,6 +127,7 @@ enum {
|
|||||||
NOLOCKFS_ARG,
|
NOLOCKFS_ARG,
|
||||||
NOOPENCOUNT_ARG,
|
NOOPENCOUNT_ARG,
|
||||||
NOTABLE_ARG,
|
NOTABLE_ARG,
|
||||||
|
NOUDEVRULES_ARG,
|
||||||
NOUDEVSYNC_ARG,
|
NOUDEVSYNC_ARG,
|
||||||
OPTIONS_ARG,
|
OPTIONS_ARG,
|
||||||
READAHEAD_ARG,
|
READAHEAD_ARG,
|
||||||
@ -557,6 +558,7 @@ static int _create(int argc, char **argv, void *data __attribute((unused)))
|
|||||||
struct dm_task *dmt;
|
struct dm_task *dmt;
|
||||||
const char *file = NULL;
|
const char *file = NULL;
|
||||||
uint32_t cookie = 0;
|
uint32_t cookie = 0;
|
||||||
|
uint16_t udev_flags = 0;
|
||||||
|
|
||||||
if (argc == 3)
|
if (argc == 3)
|
||||||
file = argv[2];
|
file = argv[2];
|
||||||
@ -605,7 +607,11 @@ static int _create(int argc, char **argv, void *data __attribute((unused)))
|
|||||||
if (_switches[NOTABLE_ARG])
|
if (_switches[NOTABLE_ARG])
|
||||||
dm_udev_set_sync_support(0);
|
dm_udev_set_sync_support(0);
|
||||||
|
|
||||||
if (!dm_task_set_cookie(dmt, &cookie, 0) ||
|
if (_switches[NOUDEVRULES_ARG])
|
||||||
|
udev_flags |= DM_UDEV_DISABLE_DM_RULES_FLAG |
|
||||||
|
DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG;
|
||||||
|
|
||||||
|
if (!dm_task_set_cookie(dmt, &cookie, udev_flags) ||
|
||||||
!dm_task_run(dmt))
|
!dm_task_run(dmt))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -626,6 +632,7 @@ static int _rename(int argc, char **argv, void *data __attribute((unused)))
|
|||||||
int r = 0;
|
int r = 0;
|
||||||
struct dm_task *dmt;
|
struct dm_task *dmt;
|
||||||
uint32_t cookie = 0;
|
uint32_t cookie = 0;
|
||||||
|
uint16_t udev_flags = 0;
|
||||||
|
|
||||||
if (!(dmt = dm_task_create(DM_DEVICE_RENAME)))
|
if (!(dmt = dm_task_create(DM_DEVICE_RENAME)))
|
||||||
return 0;
|
return 0;
|
||||||
@ -643,7 +650,11 @@ static int _rename(int argc, char **argv, void *data __attribute((unused)))
|
|||||||
if (_switches[INACTIVE_ARG] && !dm_task_query_inactive_table(dmt))
|
if (_switches[INACTIVE_ARG] && !dm_task_query_inactive_table(dmt))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!dm_task_set_cookie(dmt, &cookie, 0) ||
|
if (_switches[NOUDEVRULES_ARG])
|
||||||
|
udev_flags |= DM_UDEV_DISABLE_DM_RULES_FLAG |
|
||||||
|
DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG;
|
||||||
|
|
||||||
|
if (!dm_task_set_cookie(dmt, &cookie, udev_flags) ||
|
||||||
!dm_task_run(dmt))
|
!dm_task_run(dmt))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -1011,6 +1022,7 @@ static int _version(int argc __attribute((unused)), char **argv __attribute((unu
|
|||||||
static int _simple(int task, const char *name, uint32_t event_nr, int display)
|
static int _simple(int task, const char *name, uint32_t event_nr, int display)
|
||||||
{
|
{
|
||||||
uint32_t cookie = 0;
|
uint32_t cookie = 0;
|
||||||
|
uint16_t udev_flags = 0;
|
||||||
int udev_wait_flag = task == DM_DEVICE_RESUME ||
|
int udev_wait_flag = task == DM_DEVICE_RESUME ||
|
||||||
task == DM_DEVICE_REMOVE;
|
task == DM_DEVICE_REMOVE;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -1043,7 +1055,11 @@ static int _simple(int task, const char *name, uint32_t event_nr, int display)
|
|||||||
_read_ahead_flags))
|
_read_ahead_flags))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (udev_wait_flag && !dm_task_set_cookie(dmt, &cookie, 0))
|
if (_switches[NOUDEVRULES_ARG])
|
||||||
|
udev_flags |= DM_UDEV_DISABLE_DM_RULES_FLAG |
|
||||||
|
DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG;
|
||||||
|
|
||||||
|
if (udev_wait_flag && !dm_task_set_cookie(dmt, &cookie, udev_flags))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
r = dm_task_run(dmt);
|
r = dm_task_run(dmt);
|
||||||
@ -2559,7 +2575,8 @@ static void _usage(FILE *out)
|
|||||||
fprintf(out, "Usage:\n\n");
|
fprintf(out, "Usage:\n\n");
|
||||||
fprintf(out, "dmsetup [--version] [-v|--verbose [-v|--verbose ...]]\n"
|
fprintf(out, "dmsetup [--version] [-v|--verbose [-v|--verbose ...]]\n"
|
||||||
" [-r|--readonly] [--noopencount] [--nolockfs] [--inactive]\n"
|
" [-r|--readonly] [--noopencount] [--nolockfs] [--inactive]\n"
|
||||||
" [--noudevsync] [-y|--yes] [--readahead [+]<sectors>|auto|none]\n"
|
" [--noudevrules] [--noudevsync] [-y|--yes]\n"
|
||||||
|
" [--readahead [+]<sectors>|auto|none]\n"
|
||||||
" [-c|-C|--columns] [-o <fields>] [-O|--sort <sort_fields>]\n"
|
" [-c|-C|--columns] [-o <fields>] [-O|--sort <sort_fields>]\n"
|
||||||
" [--nameprefixes] [--noheadings] [--separator <separator>]\n\n");
|
" [--nameprefixes] [--noheadings] [--separator <separator>]\n\n");
|
||||||
for (i = 0; _commands[i].name; i++)
|
for (i = 0; _commands[i].name; i++)
|
||||||
@ -2927,6 +2944,7 @@ static int _process_switches(int *argc, char ***argv, const char *dev_dir)
|
|||||||
{"nolockfs", 0, &ind, NOLOCKFS_ARG},
|
{"nolockfs", 0, &ind, NOLOCKFS_ARG},
|
||||||
{"noopencount", 0, &ind, NOOPENCOUNT_ARG},
|
{"noopencount", 0, &ind, NOOPENCOUNT_ARG},
|
||||||
{"notable", 0, &ind, NOTABLE_ARG},
|
{"notable", 0, &ind, NOTABLE_ARG},
|
||||||
|
{"noudevrules", 0, &ind, NOUDEVRULES_ARG},
|
||||||
{"noudevsync", 0, &ind, NOUDEVSYNC_ARG},
|
{"noudevsync", 0, &ind, NOUDEVSYNC_ARG},
|
||||||
{"options", 1, &ind, OPTIONS_ARG},
|
{"options", 1, &ind, OPTIONS_ARG},
|
||||||
{"readahead", 1, &ind, READAHEAD_ARG},
|
{"readahead", 1, &ind, READAHEAD_ARG},
|
||||||
@ -3039,6 +3057,8 @@ static int _process_switches(int *argc, char ***argv, const char *dev_dir)
|
|||||||
}
|
}
|
||||||
if (c == 'y' || ind == YES_ARG)
|
if (c == 'y' || ind == YES_ARG)
|
||||||
_switches[YES_ARG]++;
|
_switches[YES_ARG]++;
|
||||||
|
if (ind == NOUDEVRULES_ARG)
|
||||||
|
_switches[NOUDEVRULES_ARG]++;
|
||||||
if (ind == NOUDEVSYNC_ARG)
|
if (ind == NOUDEVSYNC_ARG)
|
||||||
_switches[NOUDEVSYNC_ARG]++;
|
_switches[NOUDEVSYNC_ARG]++;
|
||||||
if (c == 'G' || ind == GID_ARG) {
|
if (c == 'G' || ind == GID_ARG) {
|
||||||
|
Loading…
Reference in New Issue
Block a user