From ea4d4175ab3fc5cc1545ebde4d8d35ba0bf4aa3f Mon Sep 17 00:00:00 2001 From: Shyam Date: Fri, 3 Jun 2016 14:58:16 -0400 Subject: posix2: Creation of experimental shell for posix2 xlator DHT2 comes with a new backend on-disk format, that requires a new backend storage xlator. This experimental project will house the artifacts for the same. Change-Id: I71a3d60a0415d0c23b2294a02b838810fa8f101f BUG: 1338991 Signed-off-by: Shyam Reviewed-on: http://review.gluster.org/14646 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Jeff Darcy --- xlators/experimental/Makefile.am | 2 +- xlators/experimental/posix2/Makefile.am | 3 ++ xlators/experimental/posix2/README.md | 7 +++ xlators/experimental/posix2/TODO.md | 3 ++ xlators/experimental/posix2/common/Makefile.am | 3 ++ xlators/experimental/posix2/common/src/Makefile.am | 13 +++++ .../experimental/posix2/common/src/posix2-common.c | 18 +++++++ xlators/experimental/posix2/ds/Makefile.am | 3 ++ xlators/experimental/posix2/ds/src/Makefile.am | 18 +++++++ .../experimental/posix2/ds/src/posix2-ds-main.c | 59 ++++++++++++++++++++++ xlators/experimental/posix2/mds/Makefile.am | 3 ++ xlators/experimental/posix2/mds/src/Makefile.am | 18 +++++++ .../experimental/posix2/mds/src/posix2-mds-main.c | 59 ++++++++++++++++++++++ 13 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 xlators/experimental/posix2/Makefile.am create mode 100644 xlators/experimental/posix2/README.md create mode 100644 xlators/experimental/posix2/TODO.md create mode 100644 xlators/experimental/posix2/common/Makefile.am create mode 100644 xlators/experimental/posix2/common/src/Makefile.am create mode 100644 xlators/experimental/posix2/common/src/posix2-common.c create mode 100644 xlators/experimental/posix2/ds/Makefile.am create mode 100644 xlators/experimental/posix2/ds/src/Makefile.am create mode 100644 xlators/experimental/posix2/ds/src/posix2-ds-main.c create mode 100644 xlators/experimental/posix2/mds/Makefile.am create mode 100644 xlators/experimental/posix2/mds/src/Makefile.am create mode 100644 xlators/experimental/posix2/mds/src/posix2-mds-main.c (limited to 'xlators/experimental') diff --git a/xlators/experimental/Makefile.am b/xlators/experimental/Makefile.am index 927e2df654a..a530845c4c0 100644 --- a/xlators/experimental/Makefile.am +++ b/xlators/experimental/Makefile.am @@ -1,3 +1,3 @@ -SUBDIRS = jbr-client jbr-server fdl dht2 +SUBDIRS = jbr-client jbr-server fdl dht2 posix2 CLEANFILES = diff --git a/xlators/experimental/posix2/Makefile.am b/xlators/experimental/posix2/Makefile.am new file mode 100644 index 00000000000..74e5ab0f5bc --- /dev/null +++ b/xlators/experimental/posix2/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = common mds ds + +CLEANFILES = diff --git a/xlators/experimental/posix2/README.md b/xlators/experimental/posix2/README.md new file mode 100644 index 00000000000..955a98d061e --- /dev/null +++ b/xlators/experimental/posix2/README.md @@ -0,0 +1,7 @@ +# POSIX2 Experimental README + +POSIX2 is an implementation of modified storage translator to cater to DHT2 +on disk needs. + +For further understanding, refer to xlators/experimental/dht2/README.md for +details regarding POSIX2 diff --git a/xlators/experimental/posix2/TODO.md b/xlators/experimental/posix2/TODO.md new file mode 100644 index 00000000000..20cd1e89c1d --- /dev/null +++ b/xlators/experimental/posix2/TODO.md @@ -0,0 +1,3 @@ +# POSIX2 TODO List + + \ No newline at end of file diff --git a/xlators/experimental/posix2/common/Makefile.am b/xlators/experimental/posix2/common/Makefile.am new file mode 100644 index 00000000000..a985f42a877 --- /dev/null +++ b/xlators/experimental/posix2/common/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = src + +CLEANFILES = diff --git a/xlators/experimental/posix2/common/src/Makefile.am b/xlators/experimental/posix2/common/src/Makefile.am new file mode 100644 index 00000000000..465f2f2ba32 --- /dev/null +++ b/xlators/experimental/posix2/common/src/Makefile.am @@ -0,0 +1,13 @@ +lib_LTLIBRARIES = libposix2common.la + +posix2_common_sources = posix2-common.c + +libposix2common_la_SOURCES = $(posix2_common_sources) +libposix2common_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la + +libposix2common_la_CFLAGS = -Wall $(GF_CFLAGS) + +libposix2common_la_CPPFLAGS = $(GF_CPPFLAGS) +libposix2common_la_CPPFLAGS += -I$(top_srcdir)/libglusterfs/src + +CLEANFILES = \ No newline at end of file diff --git a/xlators/experimental/posix2/common/src/posix2-common.c b/xlators/experimental/posix2/common/src/posix2-common.c new file mode 100644 index 00000000000..14b51d538b2 --- /dev/null +++ b/xlators/experimental/posix2/common/src/posix2-common.c @@ -0,0 +1,18 @@ +/* + Copyright (c) 2016 Red Hat, Inc. + 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. +*/ + +/* File: posix2-common.c + * This file contains common routines across ds and mds posix xlators + * The entire functionality including comments is TODO. + */ + +#include "glusterfs.h" +#include "logging.h" +#include "statedump.h" diff --git a/xlators/experimental/posix2/ds/Makefile.am b/xlators/experimental/posix2/ds/Makefile.am new file mode 100644 index 00000000000..a985f42a877 --- /dev/null +++ b/xlators/experimental/posix2/ds/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = src + +CLEANFILES = diff --git a/xlators/experimental/posix2/ds/src/Makefile.am b/xlators/experimental/posix2/ds/src/Makefile.am new file mode 100644 index 00000000000..d29c5e135a2 --- /dev/null +++ b/xlators/experimental/posix2/ds/src/Makefile.am @@ -0,0 +1,18 @@ +xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/experimental +xlator_LTLIBRARIES = posix2-ds.la + +posix2_ds_sources = posix2-ds-main.c + +posix2_ds_la_SOURCES = $(posix2_ds_sources) +posix2_ds_la_LDFLAGS = -module -avoid-version +posix2_ds_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la +posix2_ds_la_LIBADD += $(top_builddir)/xlators/experimental/posix2/common/src/libposix2common.la + +AM_CFLAGS = -Wall $(GF_CFLAGS) + +AM_CPPFLAGS = $(GF_CPPFLAGS) +AM_CPPFLAGS += -I$(top_srcdir)/xlators/storage/posix2/common/src +AM_CPPFLAGS += -I$(top_srcdir)/libglusterfs/src +AM_CPPFLAGS += -I$(top_srcdir)/xlators/lib/src + +CLEANFILES = \ No newline at end of file diff --git a/xlators/experimental/posix2/ds/src/posix2-ds-main.c b/xlators/experimental/posix2/ds/src/posix2-ds-main.c new file mode 100644 index 00000000000..675c4d7c9da --- /dev/null +++ b/xlators/experimental/posix2/ds/src/posix2-ds-main.c @@ -0,0 +1,59 @@ +/* + Copyright (c) 2016 Red Hat, Inc. + 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. +*/ + +/* File: posix2-ds-main.c + * This file contains the xlator loading functions, FOP entry points + * and options. + * The entire functionality including comments is TODO. + */ + +#include "glusterfs.h" +#include "xlator.h" +#include "logging.h" +#include "statedump.h" + +int32_t +posix2_ds_init (xlator_t *this) +{ + if (this->children) { + gf_log (this->name, GF_LOG_ERROR, + "This (%s) is a leaf xlator, but found children", + this->name); + return -1; + } + + return 0; +} + +void +posix2_ds_fini (xlator_t *this) +{ + return; +} + +class_methods_t class_methods = { + .init = posix2_ds_init, + .fini = posix2_ds_fini, +}; + +struct xlator_fops fops = { +}; + +struct xlator_cbks cbks = { +}; + +/* +struct xlator_dumpops dumpops = { +}; +*/ + +struct volume_options options[] = { + { .key = {NULL} }, +}; diff --git a/xlators/experimental/posix2/mds/Makefile.am b/xlators/experimental/posix2/mds/Makefile.am new file mode 100644 index 00000000000..a985f42a877 --- /dev/null +++ b/xlators/experimental/posix2/mds/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = src + +CLEANFILES = diff --git a/xlators/experimental/posix2/mds/src/Makefile.am b/xlators/experimental/posix2/mds/src/Makefile.am new file mode 100644 index 00000000000..ddd49ef0012 --- /dev/null +++ b/xlators/experimental/posix2/mds/src/Makefile.am @@ -0,0 +1,18 @@ +xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/experimental +xlator_LTLIBRARIES = posix2-mds.la + +posix2_mds_sources = posix2-mds-main.c + +posix2_mds_la_SOURCES = $(posix2_mds_sources) +posix2_mds_la_LDFLAGS = -module -avoid-version +posix2_mds_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la +posix2_mds_la_LIBADD += $(top_builddir)/xlators/experimental/posix2/common/src/libposix2common.la + +AM_CFLAGS = -Wall $(GF_CFLAGS) + +AM_CPPFLAGS = $(GF_CPPFLAGS) +AM_CPPFLAGS += -I$(top_srcdir)/xlators/storage/posix2/common/src +AM_CPPFLAGS += -I$(top_srcdir)/libglusterfs/src +AM_CPPFLAGS += -I$(top_srcdir)/xlators/lib/src + +CLEANFILES = \ No newline at end of file diff --git a/xlators/experimental/posix2/mds/src/posix2-mds-main.c b/xlators/experimental/posix2/mds/src/posix2-mds-main.c new file mode 100644 index 00000000000..71ff4e0089c --- /dev/null +++ b/xlators/experimental/posix2/mds/src/posix2-mds-main.c @@ -0,0 +1,59 @@ +/* + Copyright (c) 2016 Red Hat, Inc. + 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. +*/ + +/* File: posix2-mds-main.c + * This file contains the xlator loading functions, FOP entry points + * and options. + * The entire functionality including comments is TODO. + */ + +#include "glusterfs.h" +#include "xlator.h" +#include "logging.h" +#include "statedump.h" + +int32_t +posix2_mds_init (xlator_t *this) +{ + if (this->children) { + gf_log (this->name, GF_LOG_ERROR, + "This (%s) is a leaf xlator, but found children", + this->name); + return -1; + } + + return 0; +} + +void +posix2_mds_fini (xlator_t *this) +{ + return; +} + +class_methods_t class_methods = { + .init = posix2_mds_init, + .fini = posix2_mds_fini, +}; + +struct xlator_fops fops = { +}; + +struct xlator_cbks cbks = { +}; + +/* +struct xlator_dumpops dumpops = { +}; +*/ + +struct volume_options options[] = { + { .key = {NULL} }, +}; -- cgit