summaryrefslogtreecommitdiffstats
path: root/xlators/meta
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2014-03-29 06:01:36 -0700
committerAnand Avati <avati@redhat.com>2014-05-05 17:29:27 -0700
commitf01626d5bad8eb0298897e90a124301008cdd0da (patch)
tree9afe279162d94fc900a09e8b5acf0440606e7d1e /xlators/meta
parent8160399a36eff62a49a066f16dea9140d877c5e8 (diff)
meta: export process state dump
Various parts of process state dump are exposed through most appropriate virual files/dirs Change-Id: Iff30f8ea76552f2f6d9c98def688c5ec4bc6f2af BUG: 1089216 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/7542 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Diffstat (limited to 'xlators/meta')
-rw-r--r--xlators/meta/src/Makefile.am48
-rw-r--r--xlators/meta/src/active-link.c (renamed from xlators/meta/src/plugins/active-link.c)0
-rw-r--r--xlators/meta/src/cmdline-file.c (renamed from xlators/meta/src/plugins/cmdline-file.c)0
-rw-r--r--xlators/meta/src/frames-file.c (renamed from xlators/meta/src/plugins/frames-file.c)0
-rw-r--r--xlators/meta/src/graph-dir.c (renamed from xlators/meta/src/plugins/graph-dir.c)0
-rw-r--r--xlators/meta/src/graphs-dir.c (renamed from xlators/meta/src/plugins/graphs-dir.c)0
-rw-r--r--xlators/meta/src/history-file.c52
-rw-r--r--xlators/meta/src/logfile-link.c (renamed from xlators/meta/src/plugins/logfile-link.c)0
-rw-r--r--xlators/meta/src/logging-dir.c (renamed from xlators/meta/src/plugins/logging-dir.c)0
-rw-r--r--xlators/meta/src/loglevel-file.c (renamed from xlators/meta/src/plugins/loglevel-file.c)0
-rw-r--r--xlators/meta/src/mallinfo-file.c44
-rw-r--r--xlators/meta/src/measure-file.c92
-rw-r--r--xlators/meta/src/meminfo-file.c52
-rw-r--r--xlators/meta/src/meta-defaults.c2
-rw-r--r--xlators/meta/src/meta-hooks.h7
-rw-r--r--xlators/meta/src/name-file.c (renamed from xlators/meta/src/plugins/name-file.c)0
-rw-r--r--xlators/meta/src/option-file.c (renamed from xlators/meta/src/plugins/option-file.c)0
-rw-r--r--xlators/meta/src/options-dir.c (renamed from xlators/meta/src/plugins/options-dir.c)0
-rw-r--r--xlators/meta/src/private-file.c52
-rw-r--r--xlators/meta/src/process_uuid-file.c (renamed from xlators/meta/src/plugins/process_uuid-file.c)0
-rw-r--r--xlators/meta/src/profile-file.c52
-rw-r--r--xlators/meta/src/root-dir.c (renamed from xlators/meta/src/plugins/root-dir.c)12
-rw-r--r--xlators/meta/src/subvolume-link.c (renamed from xlators/meta/src/plugins/subvolume-link.c)0
-rw-r--r--xlators/meta/src/subvolumes-dir.c (renamed from xlators/meta/src/plugins/subvolumes-dir.c)0
-rw-r--r--xlators/meta/src/top-link.c (renamed from xlators/meta/src/plugins/top-link.c)0
-rw-r--r--xlators/meta/src/type-file.c (renamed from xlators/meta/src/plugins/type-file.c)0
-rw-r--r--xlators/meta/src/version-file.c (renamed from xlators/meta/src/plugins/version-file.c)0
-rw-r--r--xlators/meta/src/view-dir.c (renamed from xlators/meta/src/plugins/view-dir.c)0
-rw-r--r--xlators/meta/src/volfile-file.c (renamed from xlators/meta/src/plugins/volfile-file.c)0
-rw-r--r--xlators/meta/src/xlator-dir.c (renamed from xlators/meta/src/plugins/xlator-dir.c)28
30 files changed, 419 insertions, 22 deletions
diff --git a/xlators/meta/src/Makefile.am b/xlators/meta/src/Makefile.am
index 530fea9792b..b705e86b60a 100644
--- a/xlators/meta/src/Makefile.am
+++ b/xlators/meta/src/Makefile.am
@@ -4,27 +4,33 @@ xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator
meta_la_LDFLAGS = -module -avoid-version
meta_la_SOURCES = meta.c meta-helpers.c meta-defaults.c \
- plugins/root-dir.c \
- plugins/graphs-dir.c \
- plugins/frames-file.c \
- plugins/graph-dir.c \
- plugins/active-link.c \
- plugins/xlator-dir.c \
- plugins/top-link.c \
- plugins/logging-dir.c \
- plugins/logfile-link.c \
- plugins/loglevel-file.c \
- plugins/process_uuid-file.c \
- plugins/volfile-file.c \
- plugins/view-dir.c \
- plugins/subvolumes-dir.c \
- plugins/subvolume-link.c \
- plugins/type-file.c \
- plugins/version-file.c \
- plugins/options-dir.c \
- plugins/option-file.c \
- plugins/cmdline-file.c \
- plugins/name-file.c
+ root-dir.c \
+ graphs-dir.c \
+ frames-file.c \
+ graph-dir.c \
+ active-link.c \
+ xlator-dir.c \
+ top-link.c \
+ logging-dir.c \
+ logfile-link.c \
+ loglevel-file.c \
+ process_uuid-file.c \
+ volfile-file.c \
+ view-dir.c \
+ subvolumes-dir.c \
+ subvolume-link.c \
+ type-file.c \
+ version-file.c \
+ options-dir.c \
+ option-file.c \
+ cmdline-file.c \
+ name-file.c \
+ private-file.c \
+ history-file.c \
+ mallinfo-file.c \
+ meminfo-file.c \
+ measure-file.c \
+ profile-file.c
meta_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
diff --git a/xlators/meta/src/plugins/active-link.c b/xlators/meta/src/active-link.c
index 99d38597bdf..99d38597bdf 100644
--- a/xlators/meta/src/plugins/active-link.c
+++ b/xlators/meta/src/active-link.c
diff --git a/xlators/meta/src/plugins/cmdline-file.c b/xlators/meta/src/cmdline-file.c
index 1eded6d19b8..1eded6d19b8 100644
--- a/xlators/meta/src/plugins/cmdline-file.c
+++ b/xlators/meta/src/cmdline-file.c
diff --git a/xlators/meta/src/plugins/frames-file.c b/xlators/meta/src/frames-file.c
index 0c3b9a2eb71..0c3b9a2eb71 100644
--- a/xlators/meta/src/plugins/frames-file.c
+++ b/xlators/meta/src/frames-file.c
diff --git a/xlators/meta/src/plugins/graph-dir.c b/xlators/meta/src/graph-dir.c
index 3cd6b482e74..3cd6b482e74 100644
--- a/xlators/meta/src/plugins/graph-dir.c
+++ b/xlators/meta/src/graph-dir.c
diff --git a/xlators/meta/src/plugins/graphs-dir.c b/xlators/meta/src/graphs-dir.c
index 4a538fb6176..4a538fb6176 100644
--- a/xlators/meta/src/plugins/graphs-dir.c
+++ b/xlators/meta/src/graphs-dir.c
diff --git a/xlators/meta/src/history-file.c b/xlators/meta/src/history-file.c
new file mode 100644
index 00000000000..d88040fe58f
--- /dev/null
+++ b/xlators/meta/src/history-file.c
@@ -0,0 +1,52 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "strfd.h"
+#include "statedump.h"
+
+
+static int
+history_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ xlator_t *xl = NULL;
+
+ xl = meta_ctx_get (file, this);
+
+ gf_proc_dump_xlator_history (xl, strfd);
+
+ return strfd->size;
+}
+
+
+static struct meta_ops history_file_ops = {
+ .file_fill = history_file_fill,
+};
+
+
+int
+meta_history_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &history_file_ops);
+
+ meta_ctx_set (loc->inode, this, meta_ctx_get (loc->parent, this));
+
+ return 0;
+}
diff --git a/xlators/meta/src/plugins/logfile-link.c b/xlators/meta/src/logfile-link.c
index 435cab80c33..435cab80c33 100644
--- a/xlators/meta/src/plugins/logfile-link.c
+++ b/xlators/meta/src/logfile-link.c
diff --git a/xlators/meta/src/plugins/logging-dir.c b/xlators/meta/src/logging-dir.c
index 783d38e8e12..783d38e8e12 100644
--- a/xlators/meta/src/plugins/logging-dir.c
+++ b/xlators/meta/src/logging-dir.c
diff --git a/xlators/meta/src/plugins/loglevel-file.c b/xlators/meta/src/loglevel-file.c
index 24ac68ddc69..24ac68ddc69 100644
--- a/xlators/meta/src/plugins/loglevel-file.c
+++ b/xlators/meta/src/loglevel-file.c
diff --git a/xlators/meta/src/mallinfo-file.c b/xlators/meta/src/mallinfo-file.c
new file mode 100644
index 00000000000..38589f515ff
--- /dev/null
+++ b/xlators/meta/src/mallinfo-file.c
@@ -0,0 +1,44 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "statedump.h"
+
+
+static int
+mallinfo_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ gf_proc_dump_mallinfo (strfd);
+ return strfd->size;
+}
+
+
+static struct meta_ops mallinfo_file_ops = {
+ .file_fill = mallinfo_file_fill,
+};
+
+
+int
+meta_mallinfo_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &mallinfo_file_ops);
+
+ return 0;
+}
diff --git a/xlators/meta/src/measure-file.c b/xlators/meta/src/measure-file.c
new file mode 100644
index 00000000000..ccc78232dfe
--- /dev/null
+++ b/xlators/meta/src/measure-file.c
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "strfd.h"
+
+
+static int
+measure_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ strprintf (strfd, "%d\n", this->ctx->measure_latency);
+
+ return strfd->size;
+}
+
+
+static int
+measure_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
+ struct iovec *iov, int count, off_t offset,
+ uint32_t flags, struct iobref *iobref, dict_t *xdata)
+{
+ struct iatt dummy = { };
+ long int num = -1;
+
+ num = strtol (iov[0].iov_base, NULL, 0);
+ this->ctx->measure_latency = !!num;
+
+ META_STACK_UNWIND (writev, frame, iov_length (iov, count), 0,
+ &dummy, &dummy, xdata);
+ return 0;
+}
+
+
+int
+measure_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ off_t offset, dict_t *xdata)
+{
+ struct iatt iatt = { };
+
+ meta_iatt_fill (&iatt, loc->inode, IA_IFREG);
+
+ META_STACK_UNWIND (truncate, frame, 0, 0, &iatt, &iatt, xdata);
+ return 0;
+}
+
+
+int
+measure_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd,
+ off_t offset, dict_t *xdata)
+{
+ struct iatt iatt = { };
+
+ meta_iatt_fill (&iatt, fd->inode, IA_IFREG);
+
+ META_STACK_UNWIND (ftruncate, frame, 0, 0, &iatt, &iatt, xdata);
+ return 0;
+}
+
+static struct meta_ops measure_file_ops = {
+ .file_fill = measure_file_fill,
+ .fops = {
+ .truncate = measure_truncate,
+ .ftruncate = measure_ftruncate,
+ .writev = measure_writev
+ }
+};
+
+
+int
+meta_measure_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &measure_file_ops);
+
+ return 0;
+}
diff --git a/xlators/meta/src/meminfo-file.c b/xlators/meta/src/meminfo-file.c
new file mode 100644
index 00000000000..807446cfdc4
--- /dev/null
+++ b/xlators/meta/src/meminfo-file.c
@@ -0,0 +1,52 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "strfd.h"
+#include "statedump.h"
+
+
+static int
+meminfo_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ xlator_t *xl = NULL;
+
+ xl = meta_ctx_get (file, this);
+
+ gf_proc_dump_xlator_meminfo (xl, strfd);
+
+ return strfd->size;
+}
+
+
+static struct meta_ops meminfo_file_ops = {
+ .file_fill = meminfo_file_fill,
+};
+
+
+int
+meta_meminfo_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &meminfo_file_ops);
+
+ meta_ctx_set (loc->inode, this, meta_ctx_get (loc->parent, this));
+
+ return 0;
+}
diff --git a/xlators/meta/src/meta-defaults.c b/xlators/meta/src/meta-defaults.c
index f2b637fa28a..905b38554a0 100644
--- a/xlators/meta/src/meta-defaults.c
+++ b/xlators/meta/src/meta-defaults.c
@@ -138,7 +138,7 @@ meta_default_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,
iov.iov_base = iobuf_ptr (iobuf);
copy_offset = min (meta_fd->size, offset);
- copy_size = min (size, meta_fd->size) - copy_offset;
+ copy_size = min (size, (meta_fd->size - copy_offset));
if (copy_size)
memcpy (iov.iov_base, meta_fd->data + copy_offset, copy_size);
diff --git a/xlators/meta/src/meta-hooks.h b/xlators/meta/src/meta-hooks.h
index f8ce3b61e4c..bcf3643d223 100644
--- a/xlators/meta/src/meta-hooks.h
+++ b/xlators/meta/src/meta-hooks.h
@@ -35,5 +35,12 @@ DECLARE_HOOK(options_dir);
DECLARE_HOOK(option_file);
DECLARE_HOOK(cmdline_file);
DECLARE_HOOK(name_file);
+DECLARE_HOOK(private_file);
+DECLARE_HOOK(mallinfo_file);
+DECLARE_HOOK(history_file);
+DECLARE_HOOK(master_dir);
+DECLARE_HOOK(meminfo_file);
+DECLARE_HOOK(measure_file);
+DECLARE_HOOK(profile_file);
#endif
diff --git a/xlators/meta/src/plugins/name-file.c b/xlators/meta/src/name-file.c
index 8ddd42945d7..8ddd42945d7 100644
--- a/xlators/meta/src/plugins/name-file.c
+++ b/xlators/meta/src/name-file.c
diff --git a/xlators/meta/src/plugins/option-file.c b/xlators/meta/src/option-file.c
index 4f9067e1490..4f9067e1490 100644
--- a/xlators/meta/src/plugins/option-file.c
+++ b/xlators/meta/src/option-file.c
diff --git a/xlators/meta/src/plugins/options-dir.c b/xlators/meta/src/options-dir.c
index 229d365a9c7..229d365a9c7 100644
--- a/xlators/meta/src/plugins/options-dir.c
+++ b/xlators/meta/src/options-dir.c
diff --git a/xlators/meta/src/private-file.c b/xlators/meta/src/private-file.c
new file mode 100644
index 00000000000..d2402c08bb4
--- /dev/null
+++ b/xlators/meta/src/private-file.c
@@ -0,0 +1,52 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "strfd.h"
+#include "statedump.h"
+
+
+static int
+private_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ xlator_t *xl = NULL;
+
+ xl = meta_ctx_get (file, this);
+
+ gf_proc_dump_xlator_private (xl, strfd);
+
+ return strfd->size;
+}
+
+
+static struct meta_ops private_file_ops = {
+ .file_fill = private_file_fill,
+};
+
+
+int
+meta_private_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &private_file_ops);
+
+ meta_ctx_set (loc->inode, this, meta_ctx_get (loc->parent, this));
+
+ return 0;
+}
diff --git a/xlators/meta/src/plugins/process_uuid-file.c b/xlators/meta/src/process_uuid-file.c
index c16ceaac150..c16ceaac150 100644
--- a/xlators/meta/src/plugins/process_uuid-file.c
+++ b/xlators/meta/src/process_uuid-file.c
diff --git a/xlators/meta/src/profile-file.c b/xlators/meta/src/profile-file.c
new file mode 100644
index 00000000000..2a25c154699
--- /dev/null
+++ b/xlators/meta/src/profile-file.c
@@ -0,0 +1,52 @@
+/*
+ Copyright (c) 2014 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+*/
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "xlator.h"
+#include "defaults.h"
+
+#include "meta-mem-types.h"
+#include "meta.h"
+#include "strfd.h"
+#include "statedump.h"
+
+
+static int
+profile_file_fill (xlator_t *this, inode_t *file, strfd_t *strfd)
+{
+ xlator_t *xl = NULL;
+
+ xl = meta_ctx_get (file, this);
+
+ gf_proc_dump_xlator_profile (xl, strfd);
+
+ return strfd->size;
+}
+
+
+static struct meta_ops profile_file_ops = {
+ .file_fill = profile_file_fill,
+};
+
+
+int
+meta_profile_file_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ops_set (loc->inode, this, &profile_file_ops);
+
+ meta_ctx_set (loc->inode, this, meta_ctx_get (loc->parent, this));
+
+ return 0;
+}
diff --git a/xlators/meta/src/plugins/root-dir.c b/xlators/meta/src/root-dir.c
index bd6870b21d7..d104d842cf9 100644
--- a/xlators/meta/src/plugins/root-dir.c
+++ b/xlators/meta/src/root-dir.c
@@ -48,6 +48,18 @@ static struct meta_dirent root_dir_dirents[] = {
.type = IA_IFREG,
.hook = meta_cmdline_file_hook,
},
+ { .name = "mallinfo",
+ .type = IA_IFREG,
+ .hook = meta_mallinfo_file_hook,
+ },
+ { .name = "master",
+ .type = IA_IFDIR,
+ .hook = meta_master_dir_hook,
+ },
+ { .name = "measure_latency",
+ .type = IA_IFREG,
+ .hook = meta_measure_file_hook,
+ },
{ .name = NULL }
};
diff --git a/xlators/meta/src/plugins/subvolume-link.c b/xlators/meta/src/subvolume-link.c
index ca71a751541..ca71a751541 100644
--- a/xlators/meta/src/plugins/subvolume-link.c
+++ b/xlators/meta/src/subvolume-link.c
diff --git a/xlators/meta/src/plugins/subvolumes-dir.c b/xlators/meta/src/subvolumes-dir.c
index f8d0e8039a1..f8d0e8039a1 100644
--- a/xlators/meta/src/plugins/subvolumes-dir.c
+++ b/xlators/meta/src/subvolumes-dir.c
diff --git a/xlators/meta/src/plugins/top-link.c b/xlators/meta/src/top-link.c
index 94b7f7a9f56..94b7f7a9f56 100644
--- a/xlators/meta/src/plugins/top-link.c
+++ b/xlators/meta/src/top-link.c
diff --git a/xlators/meta/src/plugins/type-file.c b/xlators/meta/src/type-file.c
index 1970f4e33e8..1970f4e33e8 100644
--- a/xlators/meta/src/plugins/type-file.c
+++ b/xlators/meta/src/type-file.c
diff --git a/xlators/meta/src/plugins/version-file.c b/xlators/meta/src/version-file.c
index 77f2dea3d66..77f2dea3d66 100644
--- a/xlators/meta/src/plugins/version-file.c
+++ b/xlators/meta/src/version-file.c
diff --git a/xlators/meta/src/plugins/view-dir.c b/xlators/meta/src/view-dir.c
index 6edd455b072..6edd455b072 100644
--- a/xlators/meta/src/plugins/view-dir.c
+++ b/xlators/meta/src/view-dir.c
diff --git a/xlators/meta/src/plugins/volfile-file.c b/xlators/meta/src/volfile-file.c
index 899285763e0..899285763e0 100644
--- a/xlators/meta/src/plugins/volfile-file.c
+++ b/xlators/meta/src/volfile-file.c
diff --git a/xlators/meta/src/plugins/xlator-dir.c b/xlators/meta/src/xlator-dir.c
index 279df385cef..09b7bde62de 100644
--- a/xlators/meta/src/plugins/xlator-dir.c
+++ b/xlators/meta/src/xlator-dir.c
@@ -44,6 +44,22 @@ static struct meta_dirent xlator_dir_dirents[] = {
.type = IA_IFDIR,
.hook = meta_options_dir_hook,
},
+ { .name = "private",
+ .type = IA_IFREG,
+ .hook = meta_private_file_hook,
+ },
+ { .name = "history",
+ .type = IA_IFREG,
+ .hook = meta_history_file_hook,
+ },
+ { .name = "meminfo",
+ .type = IA_IFREG,
+ .hook = meta_meminfo_file_hook,
+ },
+ { .name = "profile",
+ .type = IA_IFREG,
+ .hook = meta_profile_file_hook,
+ },
{ .name = NULL }
};
@@ -70,3 +86,15 @@ meta_xlator_dir_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
return 0;
}
+
+
+int
+meta_master_dir_hook (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ dict_t *xdata)
+{
+ meta_ctx_set (loc->inode, this, this->ctx->master);
+
+ meta_ops_set (loc->inode, this, &xlator_dir_ops);
+
+ return 0;
+}