lkml.org 
[lkml]   [2011]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v4] blk-cgroup:be able to remove the record of unplugged device
Date
Thanks for the comments of Paul and Li Zefan.

The bug is we're not able to remove the device from blkio cgroup's
per-device control files if it gets unplugged.

To reproduce the bug:

# mount -t cgroup -o blkio xxx /cgroup
# cd /cgroup
# echo "8:0 1000" > blkio.throttle.read_bps_device
# unplug the device
# cat blkio.throttle.read_bps_device
8:0 1000
# echo "8:0 0" > blkio.throttle.read_bps_device
-bash: echo: write error: No such device

After patching, the device removal will succeed.

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
block/blk-cgroup.c | 18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index bcaf16e..9825094 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -785,7 +785,7 @@ 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;
+ unsigned long major, minor, weight;
int i = 0;
dev_t dev;
u64 bps, iops;
@@ -826,25 +826,25 @@ static int blkio_policy_parse_and_set(char *buf,

dev = MKDEV(major, minor);

- ret = blkio_check_dev_num(dev);
+ ret = strict_strtoul(s[1], 10, &weight);
if (ret)
+ return -EINVAL;
+
+ ret = blkio_check_dev_num(dev);
+ if (ret && !weight)
return ret;

newpn->dev = dev;

- if (s[1] == NULL)
- return -EINVAL;
-
switch (plid) {
case BLKIO_POLICY_PROP:
- ret = strict_strtoul(s[1], 10, &temp);
- if (ret || (temp < BLKIO_WEIGHT_MIN && temp > 0) ||
- temp > BLKIO_WEIGHT_MAX)
+ if ((weight < BLKIO_WEIGHT_MIN && weight > 0) ||
+ weight > BLKIO_WEIGHT_MAX)
return -EINVAL;

newpn->plid = plid;
newpn->fileid = fileid;
- newpn->val.weight = temp;
+ newpn->val.weight = weight;
break;
case BLKIO_POLICY_THROTL:
switch(fileid) {
--
1.7.6


\
 
 \ /
  Last update: 2011-07-26 05:05    [W:0.272 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site