diff options
author | David Teigland <teigland@redhat.com> | 2021-08-19 12:57:31 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2021-08-20 14:07:00 -0500 |
commit | 6cd4470e6d88047ceefd4ecaaf00384d85dd2dad (patch) | |
tree | 1278ba1a6f0f6ad34b6c87fac56d7d67a9a160b4 | |
parent | 4df6931c4cb49af27aa5298b95736a53e83860a9 (diff) | |
download | lvm2-6cd4470e6d88047ceefd4ecaaf00384d85dd2dad.tar.gz |
devices: apply ignorelockingfailure to devices file lock
-rw-r--r-- | lib/commands/toolcontext.h | 1 | ||||
-rw-r--r-- | lib/device/device_id.c | 4 | ||||
-rw-r--r-- | tools/lvmcmdline.c | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h index a19a9dea2..8f11a7714 100644 --- a/lib/commands/toolcontext.h +++ b/lib/commands/toolcontext.h @@ -193,6 +193,7 @@ struct cmd_context { unsigned filter_nodata_only:1; /* only use filters that do not require data from the dev */ unsigned run_by_dmeventd:1; /* command is being run by dmeventd */ unsigned sysinit:1; /* --sysinit is used */ + unsigned ignorelockingfailure:1; /* --ignorelockingfailure is used */ unsigned check_devs_used:1; /* check devs used by LVs */ unsigned print_device_id_not_found:1; /* print devices file entries not found */ unsigned ignore_device_name_mismatch:1; /* skip updating devices file names */ diff --git a/lib/device/device_id.c b/lib/device/device_id.c index bca6b4f1f..391309ccd 100644 --- a/lib/device/device_id.c +++ b/lib/device/device_id.c @@ -2268,7 +2268,7 @@ static int _lock_devices_file(struct cmd_context *cmd, int mode, int nonblock, i fd = open(_devices_lockfile, O_CREAT|O_RDWR, S_IRUSR | S_IWUSR); if (fd < 0) { log_debug("lock_devices_file open errno %d", errno); - if (cmd->sysinit) + if (cmd->sysinit || cmd->ignorelockingfailure) return 1; return 0; } @@ -2284,7 +2284,7 @@ static int _lock_devices_file(struct cmd_context *cmd, int mode, int nonblock, i if (close(fd)) stack; - if (cmd->sysinit) + if (cmd->sysinit || cmd->ignorelockingfailure) return 1; return 0; } diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c index 47ab2f3d8..12105423c 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -3190,6 +3190,8 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) goto out; } + cmd->ignorelockingfailure = arg_is_set(cmd, ignorelockingfailure_ARG); + /* Defaults to 1 if not set. */ locking_type = find_config_tree_int(cmd, global_locking_type_CFG, NULL); @@ -3224,7 +3226,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) if (!_cmd_no_meta_proc(cmd)) log_warn("WARNING: File locking is disabled."); } else { - if (!init_locking(cmd, sysinit, readonly, arg_is_set(cmd, ignorelockingfailure_ARG))) { + if (!init_locking(cmd, sysinit, readonly, cmd->ignorelockingfailure)) { ret = ECMD_FAILED; goto_out; } |