From: Miklos Szeredi <mszeredi@xxxxxxx> This managed to completely evade testing :( Fix return value to be count or -errno. Also bring the function in line with the other store functions on this object, which have more strict input checking. Also fix bdi_set_max_ratio() to actually return an error, instead of always zero. Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxx> --- Index: linux/mm/backing-dev.c =================================================================== --- linux.orig/mm/backing-dev.c 2008-02-02 23:21:50.000000000 +0100 +++ linux/mm/backing-dev.c 2008-02-02 23:26:01.000000000 +0100 @@ -16,10 +16,15 @@ static ssize_t read_ahead_kb_store(struc { struct backing_dev_info *bdi = dev_get_drvdata(dev); char *end; + unsigned long read_ahead_kb; + ssize_t ret = -EINVAL; - bdi->ra_pages = simple_strtoul(buf, &end, 10) >> (PAGE_SHIFT - 10); - - return end - buf; + read_ahead_kb = simple_strtoul(buf, &end, 10); + if (*buf && (end[0] == '\0' || (end[0] == '\n' && end[1] == '\0'))) { + bdi->ra_pages = read_ahead_kb >> (PAGE_SHIFT - 10); + ret = count; + } + return ret; } #define K(pages) ((pages) << (PAGE_SHIFT - 10)) Index: linux/mm/page-writeback.c =================================================================== --- linux.orig/mm/page-writeback.c 2008-02-02 20:51:26.000000000 +0100 +++ linux/mm/page-writeback.c 2008-02-02 23:26:15.000000000 +0100 @@ -288,7 +288,7 @@ int bdi_set_max_ratio(struct backing_dev } spin_unlock_irqrestore(&bdi_lock, flags); - return 0; + return ret; } EXPORT_SYMBOL(bdi_set_max_ratio); -- - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html