From bd71d153475761de4b99bf47d90850dc7f05c4a6 Mon Sep 17 00:00:00 2001 From: Manikandan Selvaganesh Date: Thu, 28 Jan 2016 12:35:40 +0530 Subject: cli/quota : quota is not enforcing when limit is set to 0 When limit value is set to 0, quota assumes that limit is not set and is not enforcing currently. The patch fixes this issue by restricting the user from setting limit value = 0. Backport of http://review.gluster.org/#/c/13309/ > Change-Id: I316653165cd9766600f95b5f23e5b8abcc2b41e7 > BUG: 1302554 > Signed-off-by: Manikandan Selvaganesh Change-Id: I83623cba54873f27bd65d5d6d85b1f8e9d895f55 BUG: 1306136 Signed-off-by: Manikandan Selvaganesh Reviewed-on: http://review.gluster.org/13417 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Raghavendra G --- cli/src/cli-cmd-parser.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'cli') diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index 2c3d01bb961..08cdce467ab 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -1090,12 +1090,14 @@ cli_cmd_quota_parse (const char **words, int wordcount, dict_t **options) if (type == GF_QUOTA_OPTION_TYPE_LIMIT_USAGE) { ret = gf_string2bytesize_int64 (words[5], &value); - if (ret != 0 || value < 0) { - if (errno == ERANGE || value < 0) - cli_err ("Value out of range " - "(0 - %"PRId64 "): %s", - INT64_MAX, words[5]); - else + if (ret != 0 || value <= 0) { + if (errno == ERANGE || value <= 0) { + ret = -1; + cli_err ("Please enter an integer " + "value in the range of " + "(1 - %"PRId64 ")", + INT64_MAX); + } else cli_err ("Please enter a correct " "value"); goto out; @@ -1106,7 +1108,7 @@ cli_cmd_quota_parse (const char **words, int wordcount, dict_t **options) if (errno == ERANGE || errno == EINVAL || limit <= 0 || strcmp (end_ptr, "") != 0) { ret = -1; - cli_err ("Please enter an interger value in " + cli_err ("Please enter an integer value in " "the range 1 - %"PRId64, INT64_MAX); goto out; } -- cgit