diff options
| -rw-r--r-- | MAINTAINERS | 6 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | glusterfs.spec.in | 2 | ||||
| -rw-r--r-- | tests/thin-arbiter.rc | 7 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 27 | ||||
| -rw-r--r-- | xlators/performance/Makefile.am | 2 | ||||
| -rw-r--r-- | xlators/performance/decompounder/Makefile.am | 1 | ||||
| -rw-r--r-- | xlators/performance/decompounder/src/Makefile.am | 19 | ||||
| -rw-r--r-- | xlators/performance/decompounder/src/decompounder-mem-types.h | 17 | ||||
| -rw-r--r-- | xlators/performance/decompounder/src/decompounder-messages.h | 28 | ||||
| -rw-r--r-- | xlators/performance/decompounder/src/decompounder.c | 845 | ||||
| -rw-r--r-- | xlators/performance/decompounder/src/decompounder.h | 78 | 
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__ */  | 
