diff options
| author | Anand Avati <avati@redhat.com> | 2014-03-26 11:52:53 -0700 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2014-05-05 17:28:55 -0700 | 
| commit | 8160399a36eff62a49a066f16dea9140d877c5e8 (patch) | |
| tree | e51d49bd93ff98822986569fdfada5d2819546b0 /libglusterfs | |
| parent | 7fba3a88f1ced610eca0c23516a1e720d75160cd (diff) | |
meta: (re-)Implement Meta translator
The meta translator exposes details about glusterfs itself
in the form of a virtual namespace.
Loading the translator on the client side creates the
meta virtual view under $mntpoint/.meta by default. The
directory is not listed (even with ls -a) and can be
accessed by doing a "cd /mnt/.meta"
Change-Id: I5ffdf39203841a9562a8280a1f79dc76d4dded5d
BUG: 1089216
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/7509
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/glusterfs.h | 1 | ||||
| -rw-r--r-- | libglusterfs/src/graph.c | 25 | 
2 files changed, 26 insertions, 0 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 70df63eebbc..93d7260cbe9 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -453,6 +453,7 @@ struct _glusterfs_ctx {          void               *listener; /* listener of the commands from glusterd */          unsigned char       measure_latency; /* toggle switch for latency measurement */          pthread_t           sigwaiter; +	char               *cmdlinestr;          struct mem_pool    *stub_mem_pool;          unsigned char       cleanup_started;          int                 graph_id; /* Incremented per graph, value should diff --git a/libglusterfs/src/graph.c b/libglusterfs/src/graph.c index b4eddd826f6..52e79ab68cd 100644 --- a/libglusterfs/src/graph.c +++ b/libglusterfs/src/graph.c @@ -196,6 +196,21 @@ glusterfs_graph_worm (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx)          return ret;  } + +int +glusterfs_graph_meta (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx) +{ +        int ret = 0; + +	if (!ctx->master) +		return 0; + +        ret = glusterfs_graph_insert (graph, ctx, "meta", +                                      "meta-autoload", 1); +        return ret; +} + +  int  glusterfs_graph_mac_compat (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx)  { @@ -464,6 +479,14 @@ glusterfs_graph_prepare (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx)                  return -1;          } +	/* XXX: topmost xlator */ +	ret = glusterfs_graph_meta (graph, ctx); +	if (ret) { +		gf_log ("graph", GF_LOG_ERROR, +			"glusterfs graph meta failed"); +		return -1; +	} +          /* XXX: this->ctx setting */          for (trav = graph->first; trav; trav = trav->next) {                  trav->ctx = ctx; @@ -671,6 +694,8 @@ glusterfs_volfile_reconfigure (int oldvollen, FILE *newvolfile_fp,                  goto out;          } +	glusterfs_graph_prepare (newvolfile_graph, ctx); +          if (!is_graph_topology_equal (oldvolfile_graph,                                        newvolfile_graph)) {  | 
