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:
parent
5e901a2b95
commit
9355aede5a
@ -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,
|
|||||||
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 {
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user