/* * Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved. * Copyright (C) 2004-2013 Red Hat, Inc. All rights reserved. * * This file is part of LVM2. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License v.2.1. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "tools.h" int pvremove(struct cmd_context *cmd, int argc, char **argv) { int i; unsigned force_count; unsigned prompt; struct dm_list pv_names; if (!argc) { log_error("Please enter a physical volume path"); return EINVALID_CMD_LINE; } force_count = arg_count(cmd, force_ARG); prompt = arg_count(cmd, yes_ARG); dm_list_init(&pv_names); /* Needed to change the set of orphan PVs. */ if (!lockd_gl(cmd, "ex", 0)) return_ECMD_FAILED; for (i = 0; i < argc; i++) { dm_unescape_colons_and_at_signs(argv[i], NULL, NULL); if (!str_list_add(cmd->mem, &pv_names, argv[i])) return_ECMD_FAILED; } if (!pvremove_many(cmd, &pv_names, force_count, prompt)) return_ECMD_FAILED; return ECMD_PROCESSED; }