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 | |
| 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')
| -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} },  };  | 
