diff options
Diffstat (limited to 'xlators/features/ganesha')
-rw-r--r-- | xlators/features/ganesha/Makefile.am | 3 | ||||
-rw-r--r-- | xlators/features/ganesha/src/Makefile.am | 18 | ||||
-rw-r--r-- | xlators/features/ganesha/src/ganesha-mem-types.h | 21 | ||||
-rw-r--r-- | xlators/features/ganesha/src/ganesha.c | 85 | ||||
-rw-r--r-- | xlators/features/ganesha/src/ganesha.h | 23 |
5 files changed, 150 insertions, 0 deletions
diff --git a/xlators/features/ganesha/Makefile.am b/xlators/features/ganesha/Makefile.am new file mode 100644 index 00000000000..a985f42a877 --- /dev/null +++ b/xlators/features/ganesha/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = src + +CLEANFILES = diff --git a/xlators/features/ganesha/src/Makefile.am b/xlators/features/ganesha/src/Makefile.am new file mode 100644 index 00000000000..d42b68f8440 --- /dev/null +++ b/xlators/features/ganesha/src/Makefile.am @@ -0,0 +1,18 @@ +xlator_LTLIBRARIES = ganesha.la + +xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/features + +noinst_HEADERS = ganesha.h ganesha-mem-types.h + +ganesha_la_LDFLAGS = -module -avoid-version + +ganesha_la_SOURCES = ganesha.c + +AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \ + -fPIC -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D$(GF_HOST_OS)\ + -DGANESHA_DIR=\"$(sysconfdir)/ganesha\" \ + -DGYSNCD_PREFIX=\"$(libexecdir)/glusterfs\" + +AM_CFLAGS = -Wall $(GF_CFLAGS) + +CLEANFILES = diff --git a/xlators/features/ganesha/src/ganesha-mem-types.h b/xlators/features/ganesha/src/ganesha-mem-types.h new file mode 100644 index 00000000000..c4976c01afc --- /dev/null +++ b/xlators/features/ganesha/src/ganesha-mem-types.h @@ -0,0 +1,21 @@ +/* + Copyright (c) 2015 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. +*/ +#ifndef __GANESHA_MEM_TYPES_H__ +#define __GANESHA_MEM_TYPES_H__ + + +#include "mem-types.h" + +enum gf_ganesha_mem_types_ { + gf_ganesha_mt_priv_t = gf_common_mt_end + 1, + gf_ganesha_mt_end +}; + +#endif diff --git a/xlators/features/ganesha/src/ganesha.c b/xlators/features/ganesha/src/ganesha.c new file mode 100644 index 00000000000..f034fc00d46 --- /dev/null +++ b/xlators/features/ganesha/src/ganesha.c @@ -0,0 +1,85 @@ +/* + Copyright (c) 2015 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. +*/ + + +#ifndef _CONFIG_H +#define _CONFIG_H +#include "config.h" +#endif + +#include "ganesha.h" +#include "ganesha-mem-types.h" + + + +int32_t +init (xlator_t *this) +{ + int ret = -1; + ganesha_priv_t *priv = NULL; + + if (!this->children || this->children->next) { + gf_log (this->name, GF_LOG_ERROR, + "Need subvolume == 1"); + goto err; + } + + if (!this->parents) { + gf_log (this->name, GF_LOG_WARNING, + "Dangling volume. Check volfile"); + goto err; + } + + priv = GF_CALLOC (1, sizeof (*priv), gf_ganesha_mt_priv_t); + if (!priv) + goto err; + + this->private = priv; + ret = 0; + +err: + return ret; +} + + +void +fini (xlator_t *this) +{ + ganesha_priv_t *priv = this->private; + + this->private = NULL; + if (priv) + GF_FREE (priv); + + return; +} + +struct xlator_fops fops = { +}; + +struct xlator_cbks cbks = { +}; + +struct volume_options options[] = { + { + .key = {"features.ganesha"}, + .default_value = "disable", + .type = GF_OPTION_TYPE_BOOL, + .description = "enable translator" + + }, + { .key = {"ganesha.enable"}, + .default_value = "off", + .type = GF_OPTION_TYPE_BOOL, + .description = "export volume via NFS-Ganesha" + }, + { .key = {NULL} + }, +}; diff --git a/xlators/features/ganesha/src/ganesha.h b/xlators/features/ganesha/src/ganesha.h new file mode 100644 index 00000000000..f30723da46d --- /dev/null +++ b/xlators/features/ganesha/src/ganesha.h @@ -0,0 +1,23 @@ +/* + Copyright (c) 2015 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. +*/ + +#ifndef _CONFIG_H +#define _CONFIG_H +#include "config.h" +#endif + +#include "xlator.h" +#include "ganesha-mem-types.h" + +typedef struct { + char *host_name; +} ganesha_priv_t; + + |