Tizen 2.1 base
[external/device-mapper.git] / tools / vgck.c
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 #include "metadata.h"
18
19 static int vgck_single(struct cmd_context *cmd __attribute__((unused)),
20                        const char *vg_name,
21                        struct volume_group *vg,
22                        void *handle __attribute__((unused)))
23 {
24         if (!vg_check_status(vg, EXPORTED_VG)) {
25                 stack;
26                 return ECMD_FAILED;
27         }
28
29         if (!vg_validate(vg)) {
30                 stack;
31                 return ECMD_FAILED;
32         }
33
34         if (vg_missing_pv_count(vg)) {
35                 log_error("The volume group is missing %d physical volumes.",
36                           vg_missing_pv_count(vg));
37                 return ECMD_FAILED;
38         }
39
40         return ECMD_PROCESSED;
41 }
42
43 int vgck(struct cmd_context *cmd, int argc, char **argv)
44 {
45         return process_each_vg(cmd, argc, argv, 0, NULL,
46                                &vgck_single);
47 }