diff options
| author | Amar Tumballi <amar@gluster.com> | 2011-06-02 03:07:02 +0000 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2011-06-08 09:57:58 -0700 | 
| commit | dde84f682e76ff10d92156cec205b64ed55d4c32 (patch) | |
| tree | c1bb473ca08661a3aae29e9ad529548591eb43f5 | |
| parent | 52ad8a814d9137e9e83b70638fa13e77c09d22c0 (diff) | |
performance/io-cache: fix the check of min and max file size.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2974 (volume set for 'cache-min-file-size' succeeds even if 'min-file size' is greater than 'max-file-size')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2974
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index be7227e9948..d4307dc085f 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -1499,6 +1499,7 @@ mem_acct_init (xlator_t *this)  int  validate_options (xlator_t *this, dict_t *options, char **op_errstr)  { +	ioc_table_t     *table = NULL;          int32_t          cache_timeout;          int64_t          min_file_size = 0;          int64_t          max_file_size = 0; @@ -1507,6 +1508,10 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)          char            *cache_size_string = NULL;          int              ret = 0; +        if (!this || !this->private) +                goto out; + +	table = this->private;          if (dict_get (options, "cache-timeout")) {                  cache_timeout = data_to_uint32 (dict_get (options, @@ -1581,7 +1586,7 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)                              " cache-size %"PRIu64"", cache_size);          } - +        min_file_size = table->min_file_size;          tmp = data_to_str (dict_get (options, "min-file-size"));          if (tmp != NULL) {                  if (gf_string2bytesize (tmp, @@ -1601,6 +1606,7 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)          } +        max_file_size = table->max_file_size;          tmp = data_to_str (dict_get (options, "max-file-size"));          if (tmp != NULL) {                  if (gf_string2bytesize (tmp, @@ -1620,7 +1626,7 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)                              max_file_size);          } -        if ((max_file_size >= 0) & (min_file_size > max_file_size)) { +        if ((max_file_size >= 0) && (min_file_size > max_file_size)) {                  gf_log ("io-cache", GF_LOG_WARNING, "minimum size (%"                                  PRIu64") of a file that can be cached is "                                                  "greater than maximum size (%"PRIu64"). ", @@ -1631,10 +1637,8 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)                  goto out;          } -  out: -                return ret; - +        return ret;  }  int @@ -1749,8 +1753,6 @@ reconfigure (xlator_t *this, dict_t *options)  			table->max_pri ++;  		} - -  		min_file_size = table->min_file_size;  		tmp = data_to_str (dict_get (options, "min-file-size"));  	        if (tmp != NULL) { @@ -1788,7 +1790,7 @@ reconfigure (xlator_t *this, dict_t *options)  			 	table->max_file_size);          	} -        	if ((max_file_size >= 0) & (min_file_size > max_file_size)) { +        	if ((max_file_size >= 0) && (min_file_size > max_file_size)) {                          gf_log ("io-cache", GF_LOG_ERROR, "minimum size (%"                                  PRIu64") of a file that can be cached is "                                  "greater than maximum size (%"PRIu64"). "  | 
