summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShyam <srangana@redhat.com>2016-06-03 14:58:16 -0400
committerJeff Darcy <jdarcy@redhat.com>2016-06-08 05:42:07 -0700
commitea4d4175ab3fc5cc1545ebde4d8d35ba0bf4aa3f (patch)
tree19ce29734e1414250723af63ab5fccc85f2bb460
parent8489fe576b6cf148fabcaeee79f298c41858133e (diff)
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 <srangana@redhat.com> Reviewed-on: http://review.gluster.org/14646 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
-rw-r--r--configure.ac7
-rw-r--r--glusterfs.spec.in3
-rw-r--r--xlators/experimental/Makefile.am2
-rw-r--r--xlators/experimental/posix2/Makefile.am3
-rw-r--r--xlators/experimental/posix2/README.md7
-rw-r--r--xlators/experimental/posix2/TODO.md3
-rw-r--r--xlators/experimental/posix2/common/Makefile.am3
-rw-r--r--xlators/experimental/posix2/common/src/Makefile.am13
-rw-r--r--xlators/experimental/posix2/common/src/posix2-common.c18
-rw-r--r--xlators/experimental/posix2/ds/Makefile.am3
-rw-r--r--xlators/experimental/posix2/ds/src/Makefile.am18
-rw-r--r--xlators/experimental/posix2/ds/src/posix2-ds-main.c59
-rw-r--r--xlators/experimental/posix2/mds/Makefile.am3
-rw-r--r--xlators/experimental/posix2/mds/src/Makefile.am18
-rw-r--r--xlators/experimental/posix2/mds/src/posix2-mds-main.c59
15 files changed, 218 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index e0583287560..8433840bce0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,6 +200,13 @@ AC_CONFIG_FILES([Makefile
xlators/experimental/dht2/dht2-client/src/Makefile
xlators/experimental/dht2/dht2-server/Makefile
xlators/experimental/dht2/dht2-server/src/Makefile
+ xlators/experimental/posix2/Makefile
+ xlators/experimental/posix2/ds/Makefile
+ xlators/experimental/posix2/ds/src/Makefile
+ xlators/experimental/posix2/mds/Makefile
+ xlators/experimental/posix2/mds/src/Makefile
+ xlators/experimental/posix2/common/Makefile
+ xlators/experimental/posix2/common/src/Makefile
cli/Makefile
cli/src/Makefile
doc/Makefile
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
index 82c0ab79157..a2cd3375528 100644
--- a/glusterfs.spec.in
+++ b/glusterfs.spec.in
@@ -1092,6 +1092,9 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbrc.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/jbr.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/dht2s.so
+%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-ds.so
+%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/experimental/posix2-mds.so
+%{_libdir}/libposix2common.so
%if ( 0%{!?_without_tiering:1} )
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so
%endif
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
+
+<Items will be added as code is pulled into the repository> \ 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. <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.
+*/
+
+/* 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. <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.
+*/
+
+/* 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. <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.
+*/
+
+/* 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} },
+};