1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

exit with error when --devicesfile name doesn't exist

This commit is contained in:
David Teigland 2022-07-05 17:08:00 -05:00
parent d0f94e763d
commit 92b4fcf57f
12 changed files with 46 additions and 17 deletions

View File

@ -1612,7 +1612,8 @@ int lvmcache_label_scan(struct cmd_context *cmd)
* with infos/vginfos based on reading headers from * with infos/vginfos based on reading headers from
* each device, and a vg summary from each mda. * each device, and a vg summary from each mda.
*/ */
label_scan(cmd); if (!label_scan(cmd))
return_0;
/* /*
* When devnames are used as device ids (which is dispreferred), * When devnames are used as device ids (which is dispreferred),

View File

@ -801,7 +801,7 @@ static int _setup_bcache(void)
} }
if (!(scan_bcache = bcache_create(BCACHE_BLOCK_SIZE_IN_SECTORS, cache_blocks, ioe))) { if (!(scan_bcache = bcache_create(BCACHE_BLOCK_SIZE_IN_SECTORS, cache_blocks, ioe))) {
log_error("Failed to create bcache with %d cache blocks.", cache_blocks); log_error("Failed to set up io layer with %d blocks.", cache_blocks);
return 0; return 0;
} }
@ -1292,7 +1292,7 @@ int label_scan(struct cmd_context *cmd)
* data to invalidate.) * data to invalidate.)
*/ */
if (!(iter = dev_iter_create(NULL, 0))) { if (!(iter = dev_iter_create(NULL, 0))) {
log_error("Scanning failed to get devices."); log_error("Failed to get device list.");
return 0; return 0;
} }
while ((dev = dev_iter_get(cmd, iter))) { while ((dev = dev_iter_get(cmd, iter))) {

View File

@ -107,6 +107,7 @@ not vgs --devicesfile test.devices $vg2
# misspelled override name fails # misspelled override name fails
not vgs --devicesfile doesnotexist $vg1 not vgs --devicesfile doesnotexist $vg1
not vgs --devicesfile doesnotexist $vg2 not vgs --devicesfile doesnotexist $vg2
not vgs --devicesfile doesnotexist
# devicesfile and devices cannot be used together # devicesfile and devices cannot be used together
not vgs --devicesfile test.devices --devices "$dev1","$dev1" $vg1 not vgs --devicesfile test.devices --devices "$dev1","$dev1" $vg1

View File

@ -144,7 +144,8 @@ int pvcreate(struct cmd_context *cmd, int argc, char **argv)
cmd->create_edit_devices_file = 1; cmd->create_edit_devices_file = 1;
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_ECMD_FAILED;
if (!(handle = init_processing_handle(cmd, NULL))) { if (!(handle = init_processing_handle(cmd, NULL))) {
log_error("Failed to initialize processing handle."); log_error("Failed to initialize processing handle.");

View File

@ -45,7 +45,8 @@ int pvremove(struct cmd_context *cmd, int argc, char **argv)
clear_hint_file(cmd); clear_hint_file(cmd);
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_ECMD_FAILED;
/* When forcibly clearing a PV we don't care about a VG lock. */ /* When forcibly clearing a PV we don't care about a VG lock. */
if (pp.force == DONT_PROMPT_OVERRIDE) if (pp.force == DONT_PROMPT_OVERRIDE)

View File

@ -1407,7 +1407,8 @@ static int _pvscan_cache_all(struct cmd_context *cmd, int argc, char **argv,
* which we want 'pvscan --cache' to do, and that uses * which we want 'pvscan --cache' to do, and that uses
* info from lvmcache, e.g. duplicate pv info. * info from lvmcache, e.g. duplicate pv info.
*/ */
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_0;
cmd->pvscan_recreate_hints = 0; cmd->pvscan_recreate_hints = 0;
cmd->use_hints = 0; cmd->use_hints = 0;

View File

@ -1655,7 +1655,10 @@ int process_each_label(struct cmd_context *cmd, int argc, char **argv,
log_set_report_object_type(LOG_REPORT_OBJECT_TYPE_LABEL); log_set_report_object_type(LOG_REPORT_OBJECT_TYPE_LABEL);
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
ret_max = ECMD_FAILED;
goto_out;
}
if (argc) { if (argc) {
for (; opt < argc; opt++) { for (; opt < argc; opt++) {
@ -2435,8 +2438,13 @@ int process_each_vg(struct cmd_context *cmd,
* Scan all devices to populate lvmcache with initial * Scan all devices to populate lvmcache with initial
* list of PVs and VGs. * list of PVs and VGs.
*/ */
if (!(read_flags & PROCESS_SKIP_SCAN)) if (!(read_flags & PROCESS_SKIP_SCAN)) {
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
ret_max = ECMD_FAILED;
goto_out;
}
}
/* /*
* A list of all VGs on the system is needed when: * A list of all VGs on the system is needed when:
@ -3987,7 +3995,10 @@ int process_each_lv(struct cmd_context *cmd,
* Scan all devices to populate lvmcache with initial * Scan all devices to populate lvmcache with initial
* list of PVs and VGs. * list of PVs and VGs.
*/ */
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
ret_max = ECMD_FAILED;
goto_out;
}
/* /*
* A list of all VGs on the system is needed when: * A list of all VGs on the system is needed when:
@ -4623,8 +4634,12 @@ int process_each_pv(struct cmd_context *cmd,
goto_out; goto_out;
} }
if (!(read_flags & PROCESS_SKIP_SCAN)) if (!(read_flags & PROCESS_SKIP_SCAN)) {
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
ret_max = ECMD_FAILED;
goto_out;
}
}
if (!lvmcache_get_vgnameids(cmd, &all_vgnameids, only_this_vgname, 1)) { if (!lvmcache_get_vgnameids(cmd, &all_vgnameids, only_this_vgname, 1)) {
ret_max = ret; ret_max = ret;

View File

@ -132,7 +132,10 @@ int vgcfgrestore(struct cmd_context *cmd, int argc, char **argv)
clear_hint_file(cmd); clear_hint_file(cmd);
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
unlock_vg(cmd, NULL, vg_name);
return_ECMD_FAILED;
}
cmd->handles_unknown_segments = 1; cmd->handles_unknown_segments = 1;

View File

@ -84,7 +84,10 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv)
cmd->create_edit_devices_file = 1; cmd->create_edit_devices_file = 1;
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd)) {
unlock_vg(cmd, NULL, vp_new.vg_name);
return_ECMD_FAILED;
}
if (lvmcache_vginfo_from_vgname(vp_new.vg_name, NULL)) { if (lvmcache_vginfo_from_vgname(vp_new.vg_name, NULL)) {
unlock_vg(cmd, NULL, vp_new.vg_name); unlock_vg(cmd, NULL, vp_new.vg_name);

View File

@ -160,7 +160,8 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv)
cmd->edit_devices_file = 1; cmd->edit_devices_file = 1;
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_ECMD_FAILED;
if (!(handle = init_processing_handle(cmd, NULL))) { if (!(handle = init_processing_handle(cmd, NULL))) {
log_error("Failed to initialize processing handle."); log_error("Failed to initialize processing handle.");

View File

@ -72,7 +72,8 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to,
return ECMD_FAILED; return ECMD_FAILED;
} }
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_ECMD_FAILED;
if (strcmp(vg_name_to, vg_name_from) > 0) if (strcmp(vg_name_to, vg_name_from) > 0)
lock_vg_from_first = 1; lock_vg_from_first = 1;

View File

@ -559,7 +559,8 @@ int vgsplit(struct cmd_context *cmd, int argc, char **argv)
return ECMD_FAILED; return ECMD_FAILED;
} }
lvmcache_label_scan(cmd); if (!lvmcache_label_scan(cmd))
return_ECMD_FAILED;
if (!(vginfo_to = lvmcache_vginfo_from_vgname(vg_name_to, NULL))) { if (!(vginfo_to = lvmcache_vginfo_from_vgname(vg_name_to, NULL))) {
if (!validate_name(vg_name_to)) { if (!validate_name(vg_name_to)) {