diff options
author | Petr Rockai <prockai@redhat.com> | 2015-01-06 14:17:53 +0100 |
---|---|---|
committer | Petr Rockai <prockai@redhat.com> | 2015-01-06 14:27:30 +0100 |
commit | e97023804a8aa94d723025506fa23cf4a5c323e9 (patch) | |
tree | 33125d509daae25f34245a03b369ae6b8b03b776 /tools/pvremove.c | |
parent | 0987f290a7b53840c2811392868f050d9a632ea3 (diff) | |
download | lvm2-e97023804a8aa94d723025506fa23cf4a5c323e9.tar.gz |
pvremove: Avoid metadata re-reads & related error messages.
Diffstat (limited to 'tools/pvremove.c')
-rw-r--r-- | tools/pvremove.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/tools/pvremove.c b/tools/pvremove.c index 035d4fd4e..b40ff794a 100644 --- a/tools/pvremove.c +++ b/tools/pvremove.c @@ -18,9 +18,9 @@ int pvremove(struct cmd_context *cmd, int argc, char **argv) { int i; - int ret = ECMD_PROCESSED; unsigned force_count; unsigned prompt; + struct dm_list pv_names; if (!argc) { log_error("Please enter a physical volume path"); @@ -30,15 +30,16 @@ int pvremove(struct cmd_context *cmd, int argc, char **argv) force_count = arg_count(cmd, force_ARG); prompt = arg_count(cmd, yes_ARG); + dm_list_init(&pv_names); + for (i = 0; i < argc; i++) { dm_unescape_colons_and_at_signs(argv[i], NULL, NULL); - if (!pvremove_single(cmd, argv[i], NULL, force_count, prompt)) { - stack; - ret = ECMD_FAILED; - } - if (sigint_caught()) + if (!str_list_add(cmd->mem, &pv_names, argv[i])) return_ECMD_FAILED; } - return ret; + if (!pvremove_many(cmd, &pv_names, force_count, prompt)) + return_ECMD_FAILED; + + return ECMD_PROCESSED; } |