diff options
author | Kaushik BV <kaushikbv@gluster.com> | 2011-07-15 01:20:11 +0000 |
---|---|---|
committer | Anand Avati <avati@gluster.com> | 2011-07-17 07:46:36 -0700 |
commit | a2df5a80fda40ca34df1986d2e76e86b90995d8e (patch) | |
tree | c569e38b36548351d28a86f1b21689b8d2c4e9e6 /xlators/cluster | |
parent | a33ff98a525e883dcacb1387d2aaa44aee1ae226 (diff) |
stripe: changes in volume_options to assist volume set
Signed-off-by: Kaushik BV <kaushikbv@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2041 (volume set help option)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2041
Diffstat (limited to 'xlators/cluster')
-rw-r--r-- | xlators/cluster/stripe/src/stripe.c | 52 |
1 files changed, 47 insertions, 5 deletions
diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c index c251de137..ef60626c3 100644 --- a/xlators/cluster/stripe/src/stripe.c +++ b/xlators/cluster/stripe/src/stripe.c @@ -36,6 +36,8 @@ #include "stripe.h" #include "libxlator.h" +struct volume_options options[]; + void stripe_local_wipe (stripe_local_t *local) { @@ -3805,6 +3807,7 @@ init (xlator_t *this) stripe_private_t *priv = NULL; xlator_list_t *trav = NULL; data_t *data = NULL; + char *def_blk_size = NULL; int32_t count = 0; int ret = -1; @@ -3868,20 +3871,55 @@ init (xlator_t *this) goto out; } - priv->block_size = (128 * GF_UNIT_KB); + if (xlator_get_volopt_info (&this->volume_options, "block-size", + &def_blk_size, NULL)) { + gf_log (this->name, GF_LOG_ERROR, "Default value of stripe " + "block-size corrupt"); + ret = -1; + goto out; + } else { + if (gf_string2bytesize (def_blk_size, &priv->block_size)) { + gf_log (this->name, GF_LOG_ERROR, "Default value of " + "stripe block-size corrupt"); + ret = -1; + goto out; + } + } + + /* option stripe-pattern *avi:1GB,*pdf:4096 */ data = dict_get (this->options, "block-size"); if (!data) { gf_log (this->name, GF_LOG_DEBUG, "No \"option block-size <x>\" given, defaulting " - "to 128KB"); + "to %s", def_blk_size); } else { ret = set_stripe_block_size (this, priv, data->data); if (ret) goto out; } - priv->xattr_supported = 1; + if (xlator_get_volopt_info (&this->volume_options, "use-xattr", + &def_blk_size, NULL)) { + ret = -1; + gf_log (this->name, GF_LOG_ERROR, + "error setting(default) hard check for extended" + " attribute"); + goto out; + + } + else { + if (gf_string2boolean (def_blk_size, + &priv->xattr_supported)) { + ret = -1; + gf_log (this->name, GF_LOG_ERROR, + "error setting(default) hard check for extended" + " attribute"); + goto out; + } + } + + data = dict_get (this->options, "use-xattr"); if (data) { if (gf_string2boolean (data->data, @@ -4084,10 +4122,14 @@ struct xlator_cbks cbks = { struct volume_options options[] = { { .key = {"block-size"}, - .type = GF_OPTION_TYPE_ANY + .type = GF_OPTION_TYPE_ANY, + .default_value = "128KB", + .description = "Size of the stripe unit that would be read " + "from or written to the striped servers." }, { .key = {"use-xattr"}, - .type = GF_OPTION_TYPE_BOOL + .type = GF_OPTION_TYPE_BOOL, + .default_value = "true" }, { .key = {NULL} }, }; |