dect
/
linux-2.6
Archived
13
0
Fork 0

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; 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;

View File

@ -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