From: Miklos Szeredi <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>
---

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to