From 1a6989613914cc86a64c3eb21cfddba15ce372d9 Mon Sep 17 00:00:00 2001 From: Vikas Gorur Date: Tue, 9 Jun 2009 05:08:58 +0000 Subject: Added MOP log to libglusterfs/* Signed-off-by: Anand V. Avati --- libglusterfs/src/common-utils.c | 1 + libglusterfs/src/defaults.c | 26 ++++++++++++++++++++++++++ libglusterfs/src/defaults.h | 5 +++++ libglusterfs/src/glusterfs.h | 1 + libglusterfs/src/protocol.h | 8 ++++++++ libglusterfs/src/xlator.c | 1 + libglusterfs/src/xlator.h | 10 ++++++++++ 7 files changed, 52 insertions(+) (limited to 'libglusterfs/src') diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index fb6948d2d..2650e8fb5 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -218,6 +218,7 @@ gf_global_variable_init() gf_mop_list[GF_MOP_STATS] = "STATS"; gf_mop_list[GF_MOP_SETSPEC] = "SETSPEC"; gf_mop_list[GF_MOP_GETSPEC] = "GETSPEC"; + gf_mop_list[GF_MOP_LOG] = "LOG"; gf_mop_list[GF_MOP_PING] = "PING"; gf_cbk_list[GF_CBK_FORGET] = "FORGET"; diff --git a/libglusterfs/src/defaults.c b/libglusterfs/src/defaults.c index 77451d11c..ba47ecc88 100644 --- a/libglusterfs/src/defaults.c +++ b/libglusterfs/src/defaults.c @@ -1343,6 +1343,32 @@ default_getspec (call_frame_t *frame, } +static int32_t +default_log_cbk (call_frame_t *frame, + void *cookie, + xlator_t *this, + int32_t op_ret, + int32_t op_errno) +{ + STACK_UNWIND (frame, op_ret, op_errno); + return 0; +} + + +int32_t +default_log (call_frame_t *frame, + xlator_t *this, + const char *msg) +{ + STACK_WIND (frame, + default_log_cbk, + FIRST_CHILD(this), + FIRST_CHILD(this)->mops->log, + msg); + return 0; +} + + static int32_t default_checksum_cbk (call_frame_t *frame, void *cookie, diff --git a/libglusterfs/src/defaults.h b/libglusterfs/src/defaults.h index a61bdff75..33d974520 100644 --- a/libglusterfs/src/defaults.h +++ b/libglusterfs/src/defaults.h @@ -42,6 +42,11 @@ int32_t default_getspec (call_frame_t *frame, const char *key, int32_t flag); +int32_t +default_log (call_frame_t *frame, + xlator_t *this, + const char *msg); + int32_t default_checksum (call_frame_t *frame, xlator_t *this, loc_t *loc, diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index a4b8a516f..bf269df4b 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -139,6 +139,7 @@ typedef enum { GF_MOP_SETSPEC, GF_MOP_GETSPEC, GF_MOP_PING, + GF_MOP_LOG, GF_MOP_MAXVALUE /* 5 */ } glusterfs_mop_t; diff --git a/libglusterfs/src/protocol.h b/libglusterfs/src/protocol.h index 4bb379b2f..b17f83bcd 100644 --- a/libglusterfs/src/protocol.h +++ b/libglusterfs/src/protocol.h @@ -723,6 +723,14 @@ typedef struct { } __attribute__((packed)) gf_mop_getspec_rsp_t; +typedef struct { + uint32_t msglen; + char msg[0]; +} __attribute__((packed)) gf_mop_log_req_t; +typedef struct { +} __attribute__((packed)) gf_mop_log_rsp_t; + + typedef struct { uint32_t dict_len; char buf[0]; diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index c20499de2..1bcf2e738 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -102,6 +102,7 @@ fill_defaults (xlator_t *xl) SET_DEFAULT_FOP (lock_notify); SET_DEFAULT_FOP (lock_fnotify); + SET_DEFAULT_MOP (log); SET_DEFAULT_MOP (stats); SET_DEFAULT_CBK (release); diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 2bacc0457..8e0676175 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -98,6 +98,10 @@ typedef int32_t (*mop_getspec_cbk_t) (call_frame_t *frame, int32_t op_errno, char *spec_data); +typedef int32_t (*mop_log_cbk_t) (call_frame_t *frame, + void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno); + typedef int32_t (*fop_checksum_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, @@ -119,6 +123,10 @@ typedef int32_t (*mop_getspec_t) (call_frame_t *frame, const char *key, int32_t flag); +typedef int32_t (*mop_log_t) (call_frame_t *frame, + xlator_t *this, + const char *msg); + typedef int32_t (*fop_checksum_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, @@ -127,7 +135,9 @@ typedef int32_t (*fop_checksum_t) (call_frame_t *frame, struct xlator_mops { mop_stats_t stats; mop_getspec_t getspec; + mop_log_t log; + mop_log_cbk_t log_cbk; mop_stats_cbk_t stats_cbk; mop_getspec_cbk_t getspec_cbk; }; -- cgit