summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-mountbroker.h
blob: 20c1347f52f48939d945b88a95cc35969e120aba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
   Copyright (c) 2011-2012 Red Hat, Inc. <http://www.redhat.com>
   This file is part of GlusterFS.

   This file is licensed to you under your choice of the GNU Lesser
   General Public License, version 3 or any later version (LGPLv3 or
   later), or the GNU General Public License, version 2 (GPLv2), in all
   cases as published by the Free Software Foundation.
*/
#define MB_HIVE "mb_hive"

typedef enum { SET_SUB = 1, SET_SUPER, SET_EQUAL, SET_INTERSECT } gf_setrel_t;

struct gf_mount_pattern {
    char **components;
    gf_setrel_t condition;
    gf_boolean_t negative;
};
typedef struct gf_mount_pattern gf_mount_pattern_t;

struct gf_mount_spec {
    struct cds_list_head speclist;
    char *label;
    gf_mount_pattern_t *patterns;
    size_t len;
};
typedef struct gf_mount_spec gf_mount_spec_t;

int
parse_mount_pattern_desc(gf_mount_spec_t *mspec, char *pdesc);

int
make_georep_mountspec(gf_mount_spec_t *mspec, const char *volname, char *user,
                      char *logdir);

int
glusterd_do_mount(char *label, dict_t *argdict, char **path, int *op_errno);