Currently conv routines will only generate -EINVAL, allow for other errors to be propagetd. Signed-off-by: Peter Zijlstra --- kernel/sysctl.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) Index: linux-2.6/kernel/sysctl.c =================================================================== --- linux-2.6.orig/kernel/sysctl.c +++ linux-2.6/kernel/sysctl.c @@ -1732,6 +1732,7 @@ static int __do_proc_dointvec(void *tbl_ int *i, vleft, first=1, neg, val; unsigned long lval; size_t left, len; + int ret = 0; char buf[TMPBUFLEN], *p; char __user *s = buffer; @@ -1787,14 +1788,16 @@ static int __do_proc_dointvec(void *tbl_ s += len; left -= len; - if (conv(&neg, &lval, i, 1, data)) + ret = conv(&neg, &lval, i, 1, data); + if (ret) break; } else { p = buf; if (!first) *p++ = '\t'; - if (conv(&neg, &lval, i, 0, data)) + ret = conv(&neg, &lval, i, 0, data); + if (ret) break; sprintf(p, "%s%lu", neg ? "-" : "", lval); @@ -1823,11 +1826,9 @@ static int __do_proc_dointvec(void *tbl_ left--; } } - if (write && first) - return -EINVAL; *lenp -= left; *ppos += *lenp; - return 0; + return ret; #undef TMPBUFLEN } -- - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html