diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/Makefile.am | 17 | ||||
-rw-r--r-- | libglusterfs/src/common-utils.c | 23 | ||||
-rw-r--r-- | libglusterfs/src/common-utils.h | 3 |
3 files changed, 38 insertions, 5 deletions
diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 2d1cb0fdca3..a288e703ed4 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -6,9 +6,10 @@ libglusterfs_la_CFLAGS = $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ libglusterfs_la_CPPFLAGS = $(GF_CPPFLAGS) -D__USE_FILE_OFFSET64 \ -DXLATORDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator\" \ -DXLATORPARENTDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)\" \ - -I$(top_srcdir)/rpc/rpc-lib/src/ -I$(CONTRIBDIR)/rbtree \ - -I$(CONTRIBDIR)/libexecinfo ${ARGP_STANDALONE_CPPFLAGS} \ - -DSBIN_DIR=\"$(sbindir)\" -I$(CONTRIBDIR)/timer-wheel + -I$(top_srcdir)/rpc/xdr/src/ -I$(top_srcdir)/rpc/rpc-lib/src/ \ + -I$(CONTRIBDIR)/rbtree -I$(CONTRIBDIR)/libexecinfo \ + ${ARGP_STANDALONE_CPPFLAGS} -DSBIN_DIR=\"$(sbindir)\" \ + -I$(CONTRIBDIR)/timer-wheel libglusterfs_la_LIBADD = @LEXLIB@ $(ZLIB_LIBS) $(MATH_LIB) $(UUID_LIBS) libglusterfs_la_LDFLAGS = -version-info $(LIBGLUSTERFS_LT_VERSION) @@ -35,9 +36,9 @@ libglusterfs_la_SOURCES = dict.c xlator.c logging.c \ compound-fop-utils.c throttle-tbf.c nodist_libglusterfs_la_SOURCES = y.tab.c graph.lex.c defaults.c -nodist_libglusterfs_la_HEADERS = y.tab.h glusterfs-fops.h +nodist_libglusterfs_la_HEADERS = y.tab.h glusterfs-fops.h cli1-xdr.h -BUILT_SOURCES = graph.lex.c defaults.c glusterfs-fops.h eventtypes.h +BUILT_SOURCES = graph.lex.c defaults.c glusterfs-fops.h eventtypes.h cli1-xdr.h libglusterfs_la_HEADERS = common-utils.h defaults.h default-args.h \ dict.h glusterfs.h hashfn.h timespec.h logging.h xlator.h \ @@ -99,6 +100,12 @@ $(top_srcdir)/rpc/xdr/src/glusterfs-fops.h: $(top_srcdir)/rpc/xdr/src/glusterfs- glusterfs-fops.h: $(top_srcdir)/rpc/xdr/src/glusterfs-fops.h cp $(top_srcdir)/rpc/xdr/src/glusterfs-fops.h . +$(top_srcdir)/rpc/xdr/src/cli1-xdr.h: $(top_srcdir)/rpc/xdr/src/cli1-xdr.x + $(MAKE) -C $(top_builddir)/rpc/xdr/src/ `basename $@` + +cli1-xdr.h: $(top_srcdir)/rpc/xdr/src/cli1-xdr.h + cp $(top_srcdir)/rpc/xdr/src/cli1-xdr.h . + CLEANFILES = $(nodist_libglusterfs_la_SOURCES) $(nodist_libglusterfs_la_HEADERS) if UNITTEST diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 8dc5141247e..351eb4daaec 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -46,6 +46,7 @@ #include "globals.h" #include "lkowner.h" #include "syscall.h" +#include "cli1-xdr.h" #include <ifaddrs.h> #include "libglusterfs-messages.h" @@ -53,6 +54,18 @@ #define AI_ADDRCONFIG 0 #endif /* AI_ADDRCONFIG */ +char *vol_type_str[] = {"Distribute", + "Stripe", + "Replicate", + "Striped-Replicate", + "Disperse", + "Tier", + "Distributed-Stripe", + "Distributed-Replicate", + "Distributed-Striped-Replicate", + "Distributed-Disperse", + }; + typedef int32_t (*rw_op_t)(int32_t fd, char *buf, int32_t size); typedef int32_t (*rwv_op_t)(int32_t fd, const struct iovec *buf, int32_t size); @@ -2723,6 +2736,16 @@ out: } int +get_vol_type (int type, int dist_count, int brick_count) +{ + if ((type != GF_CLUSTER_TYPE_TIER) && (type > 0) && + (dist_count < brick_count)) + type = type + GF_CLUSTER_TYPE_MAX - 1; + + return type; +} + +int validate_brick_name (char *brick) { char *delimiter = NULL; diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 4bcb6f9f2e0..3deb6bd43c9 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -209,6 +209,8 @@ struct list_node { struct list_head list; }; +extern char *vol_type_str[]; + struct list_node *list_node_add (void *ptr, struct list_head *list); struct list_node *list_node_add_order (void *ptr, struct list_head *list, int (*compare)(struct list_head *, @@ -765,6 +767,7 @@ void gf_array_insertionsort (void *a, int l, int r, size_t elem_size, int gf_is_str_int (const char *value); char *gf_uint64_2human_readable (uint64_t); +int get_vol_type (int type, int dist_count, int brick_count); int validate_brick_name (char *brick); char *get_host_name (char *word, char **host); char *get_path_name (char *word, char **path); |