Branch data Line data Source code
1 : : /*
2 : : * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
3 : : * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
4 : : *
5 : : * This file is part of LVM2.
6 : : *
7 : : * This copyrighted material is made available to anyone wishing to use,
8 : : * modify, copy, or redistribute it subject to the terms and conditions
9 : : * of the GNU Lesser General Public License v.2.1.
10 : : *
11 : : * You should have received a copy of the GNU Lesser General Public License
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
14 : : */
15 : :
16 : : #include "tools.h"
17 : :
18 : 0 : static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
19 : : void *handle __attribute((unused)))
20 : : {
21 : : struct logical_volume *origin;
22 : :
23 : : /*
24 : : * If this is a sparse device, remove its origin too.
25 : : */
26 [ # # ][ # # ]: 0 : if (lv_is_cow(lv) && lv_is_virtual_origin(origin = origin_from_cow(lv)))
27 : 0 : lv = origin;
28 : :
29 [ # # ]: 0 : if (!lv_remove_with_dependencies(cmd, lv, arg_count(cmd, force_ARG))) {
30 : 0 : stack;
31 : 0 : return ECMD_FAILED;
32 : : }
33 : :
34 : 0 : return ECMD_PROCESSED;
35 : : }
36 : :
37 : 0 : int lvremove(struct cmd_context *cmd, int argc, char **argv)
38 : : {
39 [ # # ]: 0 : if (!argc) {
40 : 0 : log_error("Please enter one or more logical volume paths");
41 : 0 : return EINVALID_CMD_LINE;
42 : : }
43 : :
44 : 0 : cmd->handles_missing_pvs = 1;
45 : :
46 : 0 : return process_each_lv(cmd, argc, argv, READ_FOR_UPDATE, NULL,
47 : : &lvremove_single);
48 : : }
|