summaryrefslogtreecommitdiff
path: root/tools/pvremove.c
diff options
context:
space:
mode:
authorPetr Rockai <prockai@redhat.com>2015-01-06 14:17:53 +0100
committerPetr Rockai <prockai@redhat.com>2015-01-06 14:27:30 +0100
commite97023804a8aa94d723025506fa23cf4a5c323e9 (patch)
tree33125d509daae25f34245a03b369ae6b8b03b776 /tools/pvremove.c
parent0987f290a7b53840c2811392868f050d9a632ea3 (diff)
downloadlvm2-e97023804a8aa94d723025506fa23cf4a5c323e9.tar.gz
pvremove: Avoid metadata re-reads & related error messages.
Diffstat (limited to 'tools/pvremove.c')
-rw-r--r--tools/pvremove.c15
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;
}