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: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
Vivek Goyal 2010-10-01 21:16:41 +02:00 committed by Jens Axboe
parent 5e901a2b95
commit 9355aede5a
2 changed files with 10 additions and 4 deletions

View File

@ -656,10 +656,10 @@ static int blkio_policy_parse_and_set(char *buf,
{
char *s[4], *p, *major_s = NULL, *minor_s = NULL;
int ret;
unsigned long major, minor, temp, iops;
unsigned long major, minor, temp;
int i = 0;
dev_t dev;
u64 bps;
u64 bps, iops;
memset(s, 0, sizeof(s));
@ -731,13 +731,16 @@ static int blkio_policy_parse_and_set(char *buf,
break;
case BLKIO_THROTL_read_iops_device:
case BLKIO_THROTL_write_iops_device:
ret = strict_strtoul(s[1], 10, &iops);
ret = strict_strtoull(s[1], 10, &iops);
if (ret)
return -EINVAL;
if (iops > THROTL_IOPS_MAX)
return -EINVAL;
newpn->plid = plid;
newpn->fileid = fileid;
newpn->val.iops = iops;
newpn->val.iops = (unsigned int)iops;
break;
}
break;

View File

@ -20,6 +20,9 @@ enum blkio_policy_id {
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)
#ifndef CONFIG_BLK_CGROUP