[PATCH] as-iosched tunable encoding fix
AS is doing internal msec<->jiffies conversions twice, so the sysfs tunables which represent time are coming out wrong. The switch from HZ=1000 exposed this. Cc: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ef2a701d44
commit
c9b3ad6734
|
@ -1935,23 +1935,15 @@ struct as_fs_entry {
|
||||||
static ssize_t
|
static ssize_t
|
||||||
as_var_show(unsigned int var, char *page)
|
as_var_show(unsigned int var, char *page)
|
||||||
{
|
{
|
||||||
var = (var * 1000) / HZ;
|
|
||||||
return sprintf(page, "%d\n", var);
|
return sprintf(page, "%d\n", var);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
as_var_store(unsigned long *var, const char *page, size_t count)
|
as_var_store(unsigned long *var, const char *page, size_t count)
|
||||||
{
|
{
|
||||||
unsigned long tmp;
|
|
||||||
char *p = (char *) page;
|
char *p = (char *) page;
|
||||||
|
|
||||||
tmp = simple_strtoul(p, &p, 10);
|
*var = simple_strtoul(p, &p, 10);
|
||||||
if (tmp != 0) {
|
|
||||||
tmp = (tmp * HZ) / 1000;
|
|
||||||
if (tmp == 0)
|
|
||||||
tmp = 1;
|
|
||||||
}
|
|
||||||
*var = tmp;
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue