summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnand V. Avati <avati@amp.gluster.com>2009-05-22 02:10:24 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-05-22 01:06:11 -0700
commit9cec4a0a790cc74106f92375506d7a16e09bdb10 (patch)
tree1f6dc3a5465b6a43136d8fa773058366e21824e0
parent99bf8da4764f425ac4022c9854acbd4247b6fdfc (diff)
THIS: xlator_notify API to be used for propagating notifications with proper THIS setting
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
-rw-r--r--libglusterfs/src/xlator.c17
-rw-r--r--libglusterfs/src/xlator.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c
index 002cf90a9..61f8f6f4e 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -807,6 +807,23 @@ xlator_fini_rec (xlator_t *xl)
}
+int
+xlator_notify (xlator_t *xl, int event, void *data, ...)
+{
+ xlator_t *old_THIS = NULL;
+ int ret = 0;
+
+ old_THIS = THIS;
+ THIS = xl;
+
+ ret = xl->notify (xl, event, data);
+
+ THIS = old_THIS;
+
+ return ret;
+}
+
+
void
xlator_tree_fini (xlator_t *xl)
{
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h
index b9555ffd5..ffbb6a0f8 100644
--- a/libglusterfs/src/xlator.h
+++ b/libglusterfs/src/xlator.h
@@ -60,6 +60,7 @@ typedef int32_t (*event_notify_fn_t) (xlator_t *this,
#include "iobuf.h"
#include "inode.h"
#include "fd.h"
+#include "globals.h"
struct _loc {
const char *path;
@@ -871,6 +872,7 @@ int32_t xlator_set_type (xlator_t *xl, const char *type);
xlator_t *file_to_xlator_tree (glusterfs_ctx_t *ctx,
FILE *fp);
+int xlator_notify (xlator_t *this, int32_t event, void *data, ...);
int32_t xlator_tree_init (xlator_t *xl);
int32_t xlator_tree_free (xlator_t *xl);