]>
Commit | Line | Data |
---|---|---|
fbad1c90 | 1 | /* |
67cdbd7e | 2 | * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. |
be684599 | 3 | * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. |
fbad1c90 | 4 | * |
6606c3ae | 5 | * This file is part of LVM2. |
fbad1c90 | 6 | * |
6606c3ae AK |
7 | * This copyrighted material is made available to anyone wishing to use, |
8 | * modify, copy, or redistribute it subject to the terms and conditions | |
be684599 | 9 | * of the GNU Lesser General Public License v.2.1. |
fbad1c90 | 10 | * |
be684599 | 11 | * You should have received a copy of the GNU Lesser General Public License |
6606c3ae AK |
12 | * along with this program; if not, write to the Free Software Foundation, |
13 | * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
fbad1c90 AK |
14 | */ |
15 | ||
16 | #include "tools.h" | |
17 | ||
9eb05d97 | 18 | static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv, |
08f1ddea | 19 | void *handle __attribute__((unused))) |
9eb05d97 | 20 | { |
87f42fda AK |
21 | struct logical_volume *origin; |
22 | ||
23 | /* | |
24 | * If this is a sparse device, remove its origin too. | |
25 | */ | |
26 | if (lv_is_cow(lv) && lv_is_virtual_origin(origin = origin_from_cow(lv))) | |
27 | lv = origin; | |
28 | ||
60267bdc | 29 | if (!lv_remove_with_dependencies(cmd, lv, arg_count(cmd, force_ARG), 0)) { |
651ff9b3 | 30 | stack; |
9eb05d97 | 31 | return ECMD_FAILED; |
651ff9b3 | 32 | } |
cc78b980 DW |
33 | |
34 | return ECMD_PROCESSED; | |
fbad1c90 | 35 | } |
5a52dca9 AK |
36 | |
37 | int lvremove(struct cmd_context *cmd, int argc, char **argv) | |
38 | { | |
39 | if (!argc) { | |
40 | log_error("Please enter one or more logical volume paths"); | |
41 | return EINVALID_CMD_LINE; | |
42 | } | |
43 | ||
8c5bcdab AK |
44 | cmd->handles_missing_pvs = 1; |
45 | ||
13e8c7e4 | 46 | return process_each_lv(cmd, argc, argv, READ_FOR_UPDATE, NULL, |
5a52dca9 AK |
47 | &lvremove_single); |
48 | } |