Branch data Line data Source code
1 : : /*
2 : : * Copyright (C) 2004 Luca Berra
3 : : * Copyright (C) 2004-2006 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 "lib.h"
17 : : #include "filter-md.h"
18 : : #include "metadata.h"
19 : :
20 : : #ifdef linux
21 : :
22 : 0 : static int _ignore_md(struct dev_filter *f __attribute((unused)),
23 : : struct device *dev)
24 : : {
25 : : int ret;
26 : :
27 [ # # ]: 0 : if (!md_filtering())
28 : 0 : return 1;
29 : :
30 : 0 : ret = dev_is_md(dev, NULL);
31 : :
32 [ # # ]: 0 : if (ret == 1) {
33 : 0 : log_debug("%s: Skipping md component device", dev_name(dev));
34 : 0 : return 0;
35 : : }
36 : :
37 [ # # ]: 0 : if (ret < 0) {
38 : 0 : log_debug("%s: Skipping: error in md component detection",
39 : : dev_name(dev));
40 : 0 : return 0;
41 : : }
42 : :
43 : 0 : return 1;
44 : : }
45 : :
46 : 3 : static void _destroy(struct dev_filter *f)
47 : : {
48 : 3 : dm_free(f);
49 : 3 : }
50 : :
51 : 3 : struct dev_filter *md_filter_create(void)
52 : : {
53 : : struct dev_filter *f;
54 : :
55 [ - + ]: 3 : if (!(f = dm_malloc(sizeof(*f)))) {
56 : 0 : log_error("md filter allocation failed");
57 : 0 : return NULL;
58 : : }
59 : :
60 : 3 : f->passes_filter = _ignore_md;
61 : 3 : f->destroy = _destroy;
62 : 3 : f->private = NULL;
63 : :
64 : 3 : return f;
65 : : }
66 : :
67 : : #else
68 : :
69 : : struct dev_filter *md_filter_create(void)
70 : : {
71 : : return NULL;
72 : : }
73 : :
74 : : #endif
|