summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2012-03-12 12:53:01 +0530
committerVijay Bellur <vijay@gluster.com>2012-03-14 03:37:17 -0700
commit29a3dc028d2847bd8421b23b7c7ee5419bd30392 (patch)
tree2afd7dc7feb9e29f1bce462a486038c1507e7ee8
parenteae8a469e7172380dd9c820405e7528a0ec33bad (diff)
mgmt/glusterd: provide an option to make a volume read-only
this can be triggered by "gluster volume set <VOLNAME> read-only on", which adds read-only translator on server graph, thus making the volume read-only. Change-Id: Iee32e6b2f3022d16016534914a5198d1cd327e25 Signed-off-by: Amar Tumballi <amarts@redhat.com> BUG: 798877 Reviewed-on: http://review.gluster.com/2915 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaushal M <kaushal@redhat.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index 4b51054fa89..91696303a40 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -204,6 +204,7 @@ static struct volopt_map_entry glusterd_volopt_map[] = {
{"client.lk-heal", "protocol/client", "lk-heal", NULL, DOC, 0},
{"client.grace-timeout", "protocol/client", "grace-timeout", NULL, DOC, 0},
{"server.grace-timeout", "protocol/server", "grace-timeout", NULL, DOC, 0},
+ {"feature.read-only", "features/read-only", "!read-only", "off", DOC, 0},
{NULL, }
};
@@ -1708,6 +1709,15 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
if (ret)
return -1;
+ /* Check for read-only volume option, and add it to the graph */
+ if (dict_get_str_boolean (set_dict, "feature.read-only", 0)) {
+ xl = volgen_graph_add (graph, "features/read-only", volname);
+ if (!xl) {
+ ret = -1;
+ goto out;
+ }
+ }
+
xl = volgen_graph_add_as (graph, "debug/io-stats", path);
if (!xl)
return -1;