summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/stripe
diff options
context:
space:
mode:
authorKaushik BV <kaushikbv@gluster.com>2011-07-12 05:33:32 +0000
committerAnand Avati <avati@gluster.com>2011-07-12 09:03:20 -0700
commit61f4b2b5f10bc1f36c86dac5a9a9d640975dee11 (patch)
tree7e54b6f47680021943538e244a2a3f5b49d75aac /xlators/cluster/stripe
parent6b40f3eba97c8aad653f0602754127f7ae5a9707 (diff)
stripe: changes in volume_options to assist volume set help/help-xml
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/stripe')
-rw-r--r--xlators/cluster/stripe/src/stripe.c52
1 files changed, 47 insertions, 5 deletions
diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c
index 390471961..b95ab4203 100644
--- a/xlators/cluster/stripe/src/stripe.c
+++ b/xlators/cluster/stripe/src/stripe.c
@@ -38,6 +38,8 @@
#include "byte-order.h"
#include "statedump.h"
+struct volume_options options[];
+
void
stripe_local_wipe (stripe_local_t *local)
{
@@ -4059,6 +4061,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;
@@ -4122,20 +4125,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,
@@ -4633,10 +4671,14 @@ struct xlator_dumpops dumpops = {
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} },
};