summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS6
-rw-r--r--configure.ac2
-rw-r--r--glusterfs.spec.in2
-rw-r--r--tests/thin-arbiter.rc7
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c27
-rw-r--r--xlators/performance/Makefile.am2
-rw-r--r--xlators/performance/decompounder/Makefile.am1
-rw-r--r--xlators/performance/decompounder/src/Makefile.am19
-rw-r--r--xlators/performance/decompounder/src/decompounder-mem-types.h17
-rw-r--r--xlators/performance/decompounder/src/decompounder-messages.h28
-rw-r--r--xlators/performance/decompounder/src/decompounder.c845
-rw-r--r--xlators/performance/decompounder/src/decompounder.h78
12 files changed, 4 insertions, 1030 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 728fa3c5c9a..7ff1142f735 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -103,12 +103,6 @@ P: Kotresh HR <khiremat@redhat.com>
S: Maintained
F: xlators/features/changelog/
-Decompounder
-M: Krutika Dhananjay <kdhananj@redhat.com>
-P: Pranith Karampuri <pkarampu@redhat.com>
-S: Maintained
-F: xlators/features/decompounder/
-
Distributed Hashing Table (DHT)
M: Raghavendra Gowdappa <rgowdapp@redhat.com>
M: Nithya Balachandran <nbalacha@redhat.com>
diff --git a/configure.ac b/configure.ac
index 08ef433c95a..bec743bf084 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,8 +87,6 @@ AC_CONFIG_FILES([Makefile
xlators/performance/open-behind/src/Makefile
xlators/performance/md-cache/Makefile
xlators/performance/md-cache/src/Makefile
- xlators/performance/decompounder/Makefile
- xlators/performance/decompounder/src/Makefile
xlators/performance/nl-cache/Makefile
xlators/performance/nl-cache/src/Makefile
xlators/debug/Makefile
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
index 1993f972e45..8c58ec73e82 100644
--- a/glusterfs.spec.in
+++ b/glusterfs.spec.in
@@ -1303,8 +1303,6 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so
-%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
- %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so
# snap_scheduler
%{_sbindir}/snap_scheduler.py
diff --git a/tests/thin-arbiter.rc b/tests/thin-arbiter.rc
index c5ac00baaaf..72202eeb53f 100644
--- a/tests/thin-arbiter.rc
+++ b/tests/thin-arbiter.rc
@@ -106,7 +106,7 @@ volume ${V0}-index
subvolumes ${V0}-io-threads
end-volume
-volume ${V0}-io-stats
+volume $b
type debug/io-stats
option count-fop-hits off
option latency-measurement off
@@ -115,11 +115,6 @@ volume ${V0}-io-stats
subvolumes ${V0}-index
end-volume
-volume $b
- type performance/decompounder
- subvolumes ${V0}-io-stats
-end-volume
-
volume ${V0}-server
type protocol/server
option transport.listen-backlog 1024
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index 1c5324307a3..0d5a5ccab5e 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -1747,28 +1747,6 @@ out:
}
static int
-brick_graph_add_decompounder(volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
- dict_t *set_dict, glusterd_brickinfo_t *brickinfo)
-{
- xlator_t *xl = NULL;
- xlator_t *this = NULL;
- glusterd_conf_t *conf = NULL;
- int ret = -1;
-
- this = THIS;
- GF_VALIDATE_OR_GOTO("glusterd", this, out);
- conf = this->private;
- GF_VALIDATE_OR_GOTO(this->name, conf, out);
-
- xl = volgen_graph_add_as(graph, "performance/decompounder",
- brickinfo->path);
- if (xl)
- ret = 0;
-out:
- return ret;
-}
-
-static int
brick_graph_add_arbiter(volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
dict_t *set_dict, glusterd_brickinfo_t *brickinfo)
{
@@ -2348,10 +2326,10 @@ brick_graph_add_io_stats(volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
int ret = -1;
xlator_t *xl = NULL;
- if (!graph || !volinfo || !set_dict || !brickinfo)
+ if (!graph || !set_dict || !brickinfo)
goto out;
- xl = volgen_graph_add(graph, "debug/io-stats", volinfo->volname);
+ xl = volgen_graph_add_as(graph, "debug/io-stats", brickinfo->path);
if (!xl)
goto out;
@@ -2617,7 +2595,6 @@ out:
* the topology of the brick graph */
static volgen_brick_xlator_t server_graph_table[] = {
{brick_graph_add_server, NULL},
- {brick_graph_add_decompounder, "decompounder"},
{brick_graph_add_io_stats, "NULL"},
{brick_graph_add_sdfs, "sdfs"},
{brick_graph_add_namespace, "namespace"},
diff --git a/xlators/performance/Makefile.am b/xlators/performance/Makefile.am
index 2946ac097b7..e95725acb8c 100644
--- a/xlators/performance/Makefile.am
+++ b/xlators/performance/Makefile.am
@@ -1,4 +1,4 @@
SUBDIRS = write-behind read-ahead readdir-ahead io-threads io-cache \
- quick-read md-cache open-behind decompounder nl-cache
+ quick-read md-cache open-behind nl-cache
CLEANFILES =
diff --git a/xlators/performance/decompounder/Makefile.am b/xlators/performance/decompounder/Makefile.am
deleted file mode 100644
index af437a64d6d..00000000000
--- a/xlators/performance/decompounder/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = src
diff --git a/xlators/performance/decompounder/src/Makefile.am b/xlators/performance/decompounder/src/Makefile.am
deleted file mode 100644
index 7823774c0d1..00000000000
--- a/xlators/performance/decompounder/src/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-if WITH_SERVER
-xlator_LTLIBRARIES = decompounder.la
-endif
-xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance
-
-decompounder_la_LDFLAGS = -module $(GF_XLATOR_DEFAULT_LDFLAGS)
-
-decompounder_la_SOURCES = decompounder.c
-decompounder_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
-
-noinst_HEADERS = decompounder-mem-types.h decompounder-messages.h \
- decompounder.h
-
-AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
- -I$(top_srcdir)/rpc/xdr/src -I$(top_builddir)/rpc/xdr/src
-
-AM_CFLAGS = -Wall $(GF_CFLAGS)
-
-CLEANFILES =
diff --git a/xlators/performance/decompounder/src/decompounder-mem-types.h b/xlators/performance/decompounder/src/decompounder-mem-types.h
deleted file mode 100644
index 1a31f7c892c..00000000000
--- a/xlators/performance/decompounder/src/decompounder-mem-types.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- 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.
-*/
-
-#ifndef __DC_MEM_TYPES_H__
-#define __DC_MEM_TYPES_H__
-
-#include <glusterfs/mem-types.h>
-
-enum gf_dc_mem_types_ { gf_dc_mt_rsp_t = gf_common_mt_end + 1, gf_dc_mt_end };
-#endif
diff --git a/xlators/performance/decompounder/src/decompounder-messages.h b/xlators/performance/decompounder/src/decompounder-messages.h
deleted file mode 100644
index a93af5d69e4..00000000000
--- a/xlators/performance/decompounder/src/decompounder-messages.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- 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.
-*/
-
-#ifndef _DC_MESSAGES_H_
-#define _DC_MESSAGES_H_
-
-#include <glusterfs/glfs-message-id.h>
-
-/* To add new message IDs, append new identifiers at the end of the list.
- *
- * Never remove a message ID. If it's not used anymore, you can rename it or
- * leave it as it is, but not delete it. This is to prevent reutilization of
- * IDs by other messages.
- *
- * The component name must match one of the entries defined in
- * glfs-message-id.h.
- */
-
-GLFS_MSGID(DC, DC_MSG_VOL_MISCONFIGURED, DC_MSG_ERROR_RECEIVED);
-
-#endif /* !_DC_MESSAGES_H_ */
diff --git a/xlators/performance/decompounder/src/decompounder.c b/xlators/performance/decompounder/src/decompounder.c
deleted file mode 100644
index 2650d83237e..00000000000
--- a/xlators/performance/decompounder/src/decompounder.c
+++ /dev/null
@@ -1,845 +0,0 @@
-/*
- 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.
-*/
-
-#include "decompounder.h"
-#include <glusterfs/mem-types.h>
-#include <glusterfs/compound-fop-utils.h>
-
-void
-dc_local_cleanup(dc_local_t *local)
-{
- compound_args_cbk_cleanup(local->compound_rsp);
- return;
-}
-
-int32_t
-dc_stat_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *buf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(stat, frame, op_ret, op_errno, buf,
- xdata);
- return 0;
-}
-
-int32_t
-dc_readlink_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, const char *path,
- struct iatt *buf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(readlink, frame, op_ret, op_errno, path,
- buf, xdata);
- return 0;
-}
-
-int32_t
-dc_mknod_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, inode_t *inode, struct iatt *buf,
- struct iatt *preparent, struct iatt *postparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(mknod, frame, op_ret, op_errno, inode,
- buf, preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_mkdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, inode_t *inode, struct iatt *buf,
- struct iatt *preparent, struct iatt *postparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(mkdir, frame, op_ret, op_errno, inode,
- buf, preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_unlink_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *preparent, struct iatt *postparent,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(unlink, frame, op_ret, op_errno,
- preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_rmdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *preparent, struct iatt *postparent,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(rmdir, frame, op_ret, op_errno,
- preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_symlink_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, inode_t *inode,
- struct iatt *buf, struct iatt *preparent,
- struct iatt *postparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(symlink, frame, op_ret, op_errno, inode,
- buf, preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_rename_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *buf, struct iatt *preoldparent,
- struct iatt *postoldparent, struct iatt *prenewparent,
- struct iatt *postnewparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(rename, frame, op_ret, op_errno, buf,
- preoldparent, postoldparent,
- prenewparent, postnewparent, xdata);
- return 0;
-}
-
-int32_t
-dc_link_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, inode_t *inode, struct iatt *buf,
- struct iatt *preparent, struct iatt *postparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(link, frame, op_ret, op_errno, inode,
- buf, preparent, postparent, xdata);
- return 0;
-}
-
-int32_t
-dc_truncate_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
- struct iatt *postbuf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(truncate, frame, op_ret, op_errno,
- prebuf, postbuf, xdata);
- return 0;
-}
-
-int32_t
-dc_open_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, fd_t *fd, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(open, frame, op_ret, op_errno, fd,
- xdata);
- return 0;
-}
-
-int32_t
-dc_readv_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iovec *vector, int32_t count,
- struct iatt *stbuf, struct iobref *iobref, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(readv, frame, op_ret, op_errno, vector,
- count, stbuf, iobref, xdata);
- return 0;
-}
-
-int32_t
-dc_writev_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(writev, frame, op_ret, op_errno, prebuf,
- postbuf, xdata);
- return 0;
-}
-
-int32_t
-dc_statfs_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct statvfs *buf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(statfs, frame, op_ret, op_errno, buf,
- xdata);
- return 0;
-}
-
-int32_t
-dc_flush_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(flush, frame, op_ret, op_errno, xdata);
- return 0;
-}
-
-int32_t
-dc_fsync_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fsync, frame, op_ret, op_errno, prebuf,
- postbuf, xdata);
- return 0;
-}
-
-int32_t
-dc_setxattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(setxattr, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_getxattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(getxattr, frame, op_ret, op_errno, dict,
- xdata);
- return 0;
-}
-
-int32_t
-dc_removexattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(removexattr, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_opendir_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(opendir, frame, op_ret, op_errno, fd,
- xdata);
- return 0;
-}
-
-int32_t
-dc_fsyncdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fsyncdir, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_access_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(access, frame, op_ret, op_errno, xdata);
- return 0;
-}
-
-int32_t
-dc_create_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, fd_t *fd, inode_t *inode, struct iatt *buf,
- struct iatt *preparent, struct iatt *postparent, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(create, frame, op_ret, op_errno, fd,
- inode, buf, preparent, postparent,
- xdata);
- return 0;
-}
-
-int32_t
-dc_ftruncate_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
- struct iatt *postbuf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(ftruncate, frame, op_ret, op_errno,
- prebuf, postbuf, xdata);
- return 0;
-}
-
-int32_t
-dc_fstat_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct iatt *buf, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fstat, frame, op_ret, op_errno, buf,
- xdata);
- return 0;
-}
-
-int32_t
-dc_lk_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, struct gf_flock *lock, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(lk, frame, op_ret, op_errno, lock,
- xdata);
- return 0;
-}
-
-int32_t
-dc_lookup_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, inode_t *inode, struct iatt *buf, dict_t *xdata,
- struct iatt *postparent)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(lookup, frame, op_ret, op_errno, inode,
- buf, xdata, postparent);
- return 0;
-}
-
-int32_t
-dc_readdir_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, gf_dirent_t *entries,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(readdir, frame, op_ret, op_errno,
- entries, xdata);
- return 0;
-}
-
-int32_t
-dc_inodelk_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(inodelk, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_finodelk_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(finodelk, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_entrylk_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(entrylk, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_fentrylk_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fentrylk, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_xattrop_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(xattrop, frame, op_ret, op_errno, dict,
- xdata);
- return 0;
-}
-
-int32_t
-dc_fxattrop_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fxattrop, frame, op_ret, op_errno, dict,
- xdata);
- return 0;
-}
-
-int32_t
-dc_fgetxattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fgetxattr, frame, op_ret, op_errno,
- dict, xdata);
- return 0;
-}
-
-int32_t
-dc_fsetxattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fsetxattr, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_rchecksum_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, uint32_t weak_cksum,
- uint8_t *strong_cksum, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(rchecksum, frame, op_ret, op_errno,
- weak_cksum, strong_cksum, xdata);
- return 0;
-}
-
-int32_t
-dc_setattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *statpre,
- struct iatt *statpost, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(setattr, frame, op_ret, op_errno,
- statpre, statpost, xdata);
- return 0;
-}
-
-int32_t
-dc_fsetattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *statpre,
- struct iatt *statpost, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fsetattr, frame, op_ret, op_errno,
- statpre, statpost, xdata);
- return 0;
-}
-
-int32_t
-dc_readdirp_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, gf_dirent_t *entries,
- dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(readdirp, frame, op_ret, op_errno,
- entries, xdata);
- return 0;
-}
-
-int32_t
-dc_fremovexattr_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fremovexattr, frame, op_ret, op_errno,
- xdata);
- return 0;
-}
-
-int32_t
-dc_fallocate_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *pre,
- struct iatt *post, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fallocate, frame, op_ret, op_errno, pre,
- post, xdata);
- return 0;
-}
-
-int32_t
-dc_discard_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *pre,
- struct iatt *post, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(discard, frame, op_ret, op_errno, pre,
- post, xdata);
- return 0;
-}
-
-int32_t
-dc_zerofill_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
- int32_t op_ret, int32_t op_errno, struct iatt *pre,
- struct iatt *post, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(zerofill, frame, op_ret, op_errno, pre,
- post, xdata);
- return 0;
-}
-
-int32_t
-dc_ipc_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(ipc, frame, op_ret, op_errno, xdata);
- return 0;
-}
-
-int32_t
-dc_seek_cbk(call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
- int32_t op_errno, off_t offset, dict_t *xdata)
-{
- DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(seek, frame, op_ret, op_errno, offset,
- xdata);
- return 0;
-}
-
-int32_t
-dc_compound_fop_wind(call_frame_t *frame, xlator_t *this)
-{
- dc_local_t *local = frame->local;
- compound_args_t *c_req = local->compound_req;
- compound_args_cbk_t *c_rsp = local->compound_rsp;
- int counter = local->counter;
- default_args_t *curr_fop = &c_req->req_list[counter];
- int op_ret = 0;
- int op_errno = ENOMEM;
-
- if (local->counter == local->length)
- goto done;
-
- c_rsp->enum_list[counter] = c_req->enum_list[counter];
-
- switch (c_req->enum_list[counter]) {
- case GF_FOP_STAT:
- STACK_WIND(frame, dc_stat_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->stat, &curr_fop->loc,
- curr_fop->xdata);
- break;
- case GF_FOP_READLINK:
- STACK_WIND(frame, dc_readlink_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->readlink, &curr_fop->loc,
- curr_fop->size, curr_fop->xdata);
- break;
- case GF_FOP_MKNOD:
- STACK_WIND(frame, dc_mknod_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->mknod, &curr_fop->loc,
- curr_fop->mode, curr_fop->rdev, curr_fop->umask,
- curr_fop->xdata);
- break;
- case GF_FOP_MKDIR:
- STACK_WIND(frame, dc_mkdir_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->mkdir, &curr_fop->loc,
- curr_fop->mode, curr_fop->umask, curr_fop->xdata);
- break;
- case GF_FOP_UNLINK:
- STACK_WIND(frame, dc_unlink_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->unlink, &curr_fop->loc,
- curr_fop->xflag, curr_fop->xdata);
- break;
- case GF_FOP_RMDIR:
- STACK_WIND(frame, dc_rmdir_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->rmdir, &curr_fop->loc,
- curr_fop->flags, curr_fop->xdata);
- break;
- case GF_FOP_SYMLINK:
- STACK_WIND(frame, dc_symlink_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->symlink, curr_fop->linkname,
- &curr_fop->loc, curr_fop->umask, curr_fop->xdata);
- break;
- case GF_FOP_RENAME:
- STACK_WIND(frame, dc_rename_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->rename, &curr_fop->loc,
- &curr_fop->loc2, curr_fop->xdata);
- break;
- case GF_FOP_LINK:
- STACK_WIND(frame, dc_link_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->link, &curr_fop->loc,
- &curr_fop->loc2, curr_fop->xdata);
- break;
- case GF_FOP_TRUNCATE:
- STACK_WIND(frame, dc_truncate_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->truncate, &curr_fop->loc,
- curr_fop->offset, curr_fop->xdata);
- break;
- case GF_FOP_OPEN:
- STACK_WIND(frame, dc_open_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->open, &curr_fop->loc,
- curr_fop->flags, curr_fop->fd, curr_fop->xdata);
- break;
- case GF_FOP_READ:
- STACK_WIND(frame, dc_readv_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->readv, curr_fop->fd,
- curr_fop->size, curr_fop->offset, curr_fop->flags,
- curr_fop->xdata);
- break;
- case GF_FOP_WRITE:
- STACK_WIND(frame, dc_writev_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->writev, curr_fop->fd,
- curr_fop->vector, curr_fop->count, curr_fop->offset,
- curr_fop->flags, curr_fop->iobref, curr_fop->xdata);
- break;
- case GF_FOP_STATFS:
- STACK_WIND(frame, dc_statfs_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->statfs, &curr_fop->loc,
- curr_fop->xdata);
- break;
- case GF_FOP_FLUSH:
- STACK_WIND(frame, dc_flush_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->flush, curr_fop->fd,
- curr_fop->xdata);
- break;
- case GF_FOP_FSYNC:
- STACK_WIND(frame, dc_fsync_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fsync, curr_fop->fd,
- curr_fop->datasync, curr_fop->xdata);
- break;
- case GF_FOP_SETXATTR:
- STACK_WIND(frame, dc_setxattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->setxattr, &curr_fop->loc,
- curr_fop->xattr, curr_fop->flags, curr_fop->xdata);
- break;
- case GF_FOP_GETXATTR:
- STACK_WIND(frame, dc_getxattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->getxattr, &curr_fop->loc,
- curr_fop->name, curr_fop->xdata);
- break;
- case GF_FOP_REMOVEXATTR:
- STACK_WIND(frame, dc_removexattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->removexattr, &curr_fop->loc,
- curr_fop->name, curr_fop->xdata);
- break;
- case GF_FOP_OPENDIR:
- STACK_WIND(frame, dc_opendir_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->opendir, &curr_fop->loc,
- curr_fop->fd, curr_fop->xdata);
- break;
- case GF_FOP_FSYNCDIR:
- STACK_WIND(frame, dc_fsyncdir_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fsyncdir, curr_fop->fd,
- curr_fop->datasync, curr_fop->xdata);
- break;
- case GF_FOP_ACCESS:
- STACK_WIND(frame, dc_access_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->access, &curr_fop->loc,
- curr_fop->mask, curr_fop->xdata);
- break;
- case GF_FOP_CREATE:
- STACK_WIND(frame, dc_create_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->create, &curr_fop->loc,
- curr_fop->flags, curr_fop->mode, curr_fop->umask,
- curr_fop->fd, curr_fop->xdata);
- break;
- case GF_FOP_FTRUNCATE:
- STACK_WIND(frame, dc_ftruncate_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->ftruncate, curr_fop->fd,
- curr_fop->offset, curr_fop->xdata);
- break;
- case GF_FOP_FSTAT:
- STACK_WIND(frame, dc_fstat_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fstat, curr_fop->fd,
- curr_fop->xdata);
- break;
- case GF_FOP_LK:
- STACK_WIND(frame, dc_lk_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->lk, curr_fop->fd, curr_fop->cmd,
- &curr_fop->lock, curr_fop->xdata);
- break;
- case GF_FOP_LOOKUP:
- STACK_WIND(frame, dc_lookup_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->lookup, &curr_fop->loc,
- curr_fop->xdata);
- break;
- case GF_FOP_READDIR:
- STACK_WIND(frame, dc_readdir_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->readdir, curr_fop->fd,
- curr_fop->size, curr_fop->offset, curr_fop->xdata);
- break;
- case GF_FOP_INODELK:
- STACK_WIND(frame, dc_inodelk_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->inodelk, curr_fop->volume,
- &curr_fop->loc, curr_fop->cmd, &curr_fop->lock,
- curr_fop->xdata);
- break;
- case GF_FOP_FINODELK:
- STACK_WIND(frame, dc_finodelk_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->finodelk, curr_fop->volume,
- curr_fop->fd, curr_fop->cmd, &curr_fop->lock,
- curr_fop->xdata);
- break;
- case GF_FOP_ENTRYLK:
- STACK_WIND(frame, dc_entrylk_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->entrylk, curr_fop->volume,
- &curr_fop->loc, curr_fop->name, curr_fop->entrylkcmd,
- curr_fop->entrylktype, curr_fop->xdata);
- break;
- case GF_FOP_FENTRYLK:
- STACK_WIND(frame, dc_fentrylk_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fentrylk, curr_fop->volume,
- curr_fop->fd, curr_fop->name, curr_fop->entrylkcmd,
- curr_fop->entrylktype, curr_fop->xdata);
- break;
- case GF_FOP_XATTROP:
- STACK_WIND(frame, dc_xattrop_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->xattrop, &curr_fop->loc,
- curr_fop->optype, curr_fop->xattr, curr_fop->xdata);
- break;
- case GF_FOP_FXATTROP:
- STACK_WIND(frame, dc_fxattrop_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fxattrop, curr_fop->fd,
- curr_fop->optype, curr_fop->xattr, curr_fop->xdata);
- break;
- case GF_FOP_FGETXATTR:
- STACK_WIND(frame, dc_fgetxattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fgetxattr, curr_fop->fd,
- curr_fop->name, curr_fop->xdata);
- break;
- case GF_FOP_FSETXATTR:
- STACK_WIND(frame, dc_fsetxattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fsetxattr, curr_fop->fd,
- curr_fop->xattr, curr_fop->flags, curr_fop->xdata);
- break;
- case GF_FOP_RCHECKSUM:
- STACK_WIND(frame, dc_rchecksum_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->rchecksum, curr_fop->fd,
- curr_fop->offset, curr_fop->size, curr_fop->xdata);
- break;
- case GF_FOP_SETATTR:
- STACK_WIND(frame, dc_setattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->setattr, &curr_fop->loc,
- &curr_fop->stat, curr_fop->valid, curr_fop->xdata);
- break;
- case GF_FOP_FSETATTR:
- STACK_WIND(frame, dc_fsetattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fsetattr, curr_fop->fd,
- &curr_fop->stat, curr_fop->valid, curr_fop->xdata);
- break;
- case GF_FOP_READDIRP:
- STACK_WIND(frame, dc_readdirp_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->readdirp, curr_fop->fd,
- curr_fop->size, curr_fop->offset, curr_fop->xdata);
- break;
- case GF_FOP_FREMOVEXATTR:
- STACK_WIND(frame, dc_fremovexattr_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fremovexattr, curr_fop->fd,
- curr_fop->name, curr_fop->xdata);
- break;
- case GF_FOP_FALLOCATE:
- STACK_WIND(frame, dc_fallocate_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->fallocate, curr_fop->fd,
- curr_fop->flags, curr_fop->offset, curr_fop->size,
- curr_fop->xdata);
- break;
- case GF_FOP_DISCARD:
- STACK_WIND(frame, dc_discard_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->discard, curr_fop->fd,
- curr_fop->offset, curr_fop->size, curr_fop->xdata);
- break;
- case GF_FOP_ZEROFILL:
- STACK_WIND(frame, dc_zerofill_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->zerofill, curr_fop->fd,
- curr_fop->offset, curr_fop->size, curr_fop->xdata);
- break;
- case GF_FOP_IPC:
- STACK_WIND(frame, dc_ipc_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->ipc, curr_fop->cmd,
- curr_fop->xdata);
- break;
- case GF_FOP_SEEK:
- STACK_WIND(frame, dc_seek_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->seek, curr_fop->fd,
- curr_fop->offset, curr_fop->what, curr_fop->xdata);
- break;
- default:
- return -ENOTSUP;
- }
- return 0;
-done:
- DC_STACK_UNWIND(frame, op_ret, op_errno, c_rsp, NULL);
- return 0;
-}
-
-int32_t
-dc_compound(call_frame_t *frame, xlator_t *this, void *data, dict_t *xdata)
-{
- compound_args_t *compound_req = NULL;
- compound_args_cbk_t *compound_rsp = NULL;
- int ret = 0;
- int op_errno = ENOMEM;
- dc_local_t *local = NULL;
-
- compound_req = data;
-
- GF_ASSERT_AND_GOTO_WITH_ERROR(this, compound_req, out, op_errno, EINVAL);
-
- local = mem_get0(this->local_pool);
- if (!local)
- goto out;
-
- frame->local = local;
-
- local->compound_rsp = compound_args_cbk_alloc(compound_req->fop_length,
- NULL);
- if (!local->compound_rsp)
- goto out;
-
- compound_rsp = local->compound_rsp;
-
- local->length = compound_req->fop_length;
- local->counter = 0;
- local->compound_req = compound_req;
-
- if (!local->length) {
- op_errno = EINVAL;
- goto out;
- }
-
- ret = dc_compound_fop_wind(frame, this);
- if (ret < 0) {
- op_errno = -ret;
- goto out;
- }
- return 0;
-out:
- DC_STACK_UNWIND(frame, -1, op_errno, compound_rsp, NULL);
- return 0;
-}
-
-struct xlator_cbks cbks = {};
-
-struct volume_options options[] = {
- {.key = {NULL}},
-};
-
-struct xlator_fops fops = {
- .compound = dc_compound,
-};
-
-int32_t
-mem_acct_init(xlator_t *this)
-{
- int ret = -1;
-
- if (!this)
- return ret;
-
- ret = xlator_mem_acct_init(this, gf_dc_mt_end + 1);
-
- return ret;
-}
-
-int32_t
-init(xlator_t *this)
-{
- int ret = -1;
-
- if (!this->children) {
- gf_msg(this->name, GF_LOG_WARNING, 0, DC_MSG_VOL_MISCONFIGURED,
- "Decompounder must have"
- " a subvol.");
- goto out;
- }
-
- if (!this->parents) {
- gf_msg(this->name, GF_LOG_WARNING, 0, DC_MSG_VOL_MISCONFIGURED,
- "Volume is dangling.");
- goto out;
- }
-
- this->local_pool = mem_pool_new(dc_local_t, 128);
- if (!this->local_pool) {
- goto out;
- }
-
- ret = 0;
-out:
- return ret;
-}
-
-void
-fini(xlator_t *this)
-{
- if (!this)
- return;
-
- if (this->local_pool) {
- mem_pool_destroy(this->local_pool);
- this->local_pool = NULL;
- }
- return;
-}
-
-xlator_api_t xlator_api = {
- .init = init,
- .fini = fini,
- .mem_acct_init = mem_acct_init,
- .op_version = {1}, /* Present from the initial version */
- .fops = &fops,
- .cbks = &cbks,
- .options = options,
- .identifier = "decompounder",
- .category = GF_TECH_PREVIEW,
-};
diff --git a/xlators/performance/decompounder/src/decompounder.h b/xlators/performance/decompounder/src/decompounder.h
deleted file mode 100644
index b9b934d5112..00000000000
--- a/xlators/performance/decompounder/src/decompounder.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- 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.
-*/
-
-#ifndef __DC_H__
-#define __DC_H__
-
-#include <glusterfs/defaults.h>
-#include <glusterfs/xlator.h>
-#include <glusterfs/call-stub.h>
-#include "decompounder-mem-types.h"
-#include "decompounder-messages.h"
-
-typedef struct {
- compound_args_t *compound_req;
- compound_args_cbk_t *compound_rsp;
- int counter;
- int length;
-} dc_local_t;
-
-#define DC_STACK_UNWIND(frame, op_ret, op_errno, rsp, xdata) \
- do { \
- dc_local_t *__local = NULL; \
- \
- if (frame) { \
- __local = frame->local; \
- frame->local = NULL; \
- } \
- STACK_UNWIND_STRICT(compound, frame, op_ret, op_errno, (void *)rsp, \
- xdata); \
- if (__local) { \
- dc_local_cleanup(__local); \
- mem_put(__local); \
- } \
- } while (0)
-
-int32_t
-dc_compound_fop_wind(call_frame_t *frame, xlator_t *this);
-
-void
-dc_local_cleanup(dc_local_t *local);
-
-#define DC_FOP_RESPONSE_STORE_AND_WIND_NEXT(fop, frame, op_ret, op_errno, \
- params...) \
- do { \
- dc_local_t *__local = frame->local; \
- xlator_t *__this = frame->this; \
- int __ret = 0; \
- int __counter = __local->counter; \
- compound_args_cbk_t *__compound_rsp = __local->compound_rsp; \
- default_args_cbk_t *__fop_rsp = &__local->compound_rsp \
- ->rsp_list[__counter]; \
- \
- if (op_ret < 0) { \
- gf_msg(__this->name, GF_LOG_ERROR, op_errno, \
- DC_MSG_ERROR_RECEIVED, "fop number %d failed. Unwinding.", \
- __counter + 1); \
- args_##fop##_cbk_store(__fop_rsp, op_ret, op_errno, params); \
- /*TODO : Fill the rest of the responses to -1 or NULL*/ \
- DC_STACK_UNWIND(frame, op_ret, op_errno, (void *)__compound_rsp, \
- NULL); \
- } else { \
- args_##fop##_cbk_store(__fop_rsp, op_ret, op_errno, params); \
- __local->counter++; \
- __ret = dc_compound_fop_wind(frame, __this); \
- if (__ret < 0) { \
- DC_STACK_UNWIND(frame, -1, -__ret, (void *)__compound_rsp, \
- NULL); \
- } \
- } \
- } while (0)
-#endif /* DC_H__ */