Commit 9355aede authored by Vivek Goyal's avatar Vivek Goyal Committed by Jens Axboe

blkio-throttle: limit max iops value to UINT_MAX

- Limit max iops value to UINT_MAX and return error to user if value is more
  than that instead of accepting bigger values and truncating implicitly.
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 5e901a2b
...@@ -656,10 +656,10 @@ static int blkio_policy_parse_and_set(char *buf, ...@@ -656,10 +656,10 @@ static int blkio_policy_parse_and_set(char *buf,
{ {
char *s[4], *p, *major_s = NULL, *minor_s = NULL; char *s[4], *p, *major_s = NULL, *minor_s = NULL;
int ret; int ret;
unsigned long major, minor, temp, iops; unsigned long major, minor, temp;
int i = 0; int i = 0;
dev_t dev; dev_t dev;
u64 bps; u64 bps, iops;
memset(s, 0, sizeof(s)); memset(s, 0, sizeof(s));
...@@ -731,13 +731,16 @@ static int blkio_policy_parse_and_set(char *buf, ...@@ -731,13 +731,16 @@ static int blkio_policy_parse_and_set(char *buf,
break; break;
case BLKIO_THROTL_read_iops_device: case BLKIO_THROTL_read_iops_device:
case BLKIO_THROTL_write_iops_device: case BLKIO_THROTL_write_iops_device:
ret = strict_strtoul(s[1], 10, &iops); ret = strict_strtoull(s[1], 10, &iops);
if (ret) if (ret)
return -EINVAL; return -EINVAL;
if (iops > THROTL_IOPS_MAX)
return -EINVAL;
newpn->plid = plid; newpn->plid = plid;
newpn->fileid = fileid; newpn->fileid = fileid;
newpn->val.iops = iops; newpn->val.iops = (unsigned int)iops;
break; break;
} }
break; break;
......
...@@ -20,6 +20,9 @@ enum blkio_policy_id { ...@@ -20,6 +20,9 @@ enum blkio_policy_id {
BLKIO_POLICY_THROTL, /* Throttling */ BLKIO_POLICY_THROTL, /* Throttling */
}; };
/* Max limits for throttle policy */
#define THROTL_IOPS_MAX UINT_MAX
#if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE) #if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE)
#ifndef CONFIG_BLK_CGROUP #ifndef CONFIG_BLK_CGROUP
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment