From ceef95a4db05ac178a8190c0330980bad1bbd860 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Sun, 31 Aug 2008 19:25:49 +0400 Subject: [PATCH] --- yaml --- r: 109375 b: refs/heads/master c: 27df6f25ff218072e0e879a96beeb398a79cdbc8 h: refs/heads/master i: 109373: 69198bfaa1bcb3c6d42d5648dafc4463b9a48f88 109371: 23b9fd364c67fb1bd8ea50b9f0ca72b6429d6679 109367: d2ad0cb65ece780d00a8fd4a22ef43ce419f3c18 109359: c5c8150db84680165f5e791d0a3732c1919ef2f2 109343: 89aaabd1f6c211ea4b44319306421ce06b27b948 109311: ab708d25d10113febfca1932109e3df6c63a556a v: v3 --- [refs] | 2 +- trunk/net/sunrpc/sysctl.c | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index e7b7f01a9ae8..58d6808f3f13 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c228c24bf1138d4757dbe20615df655815446da3 +refs/heads/master: 27df6f25ff218072e0e879a96beeb398a79cdbc8 diff --git a/trunk/net/sunrpc/sysctl.c b/trunk/net/sunrpc/sysctl.c index 0f8c439b848a..5231f7aaac0e 100644 --- a/trunk/net/sunrpc/sysctl.c +++ b/trunk/net/sunrpc/sysctl.c @@ -60,24 +60,14 @@ static int proc_do_xprt(ctl_table *table, int write, struct file *file, void __user *buffer, size_t *lenp, loff_t *ppos) { char tmpbuf[256]; - int len; + size_t len; + if ((*ppos && !write) || !*lenp) { *lenp = 0; return 0; } - if (write) - return -EINVAL; - else { - len = svc_print_xprts(tmpbuf, sizeof(tmpbuf)); - if (!access_ok(VERIFY_WRITE, buffer, len)) - return -EFAULT; - - if (__copy_to_user(buffer, tmpbuf, len)) - return -EFAULT; - } - *lenp -= len; - *ppos += len; - return 0; + len = svc_print_xprts(tmpbuf, sizeof(tmpbuf)); + return simple_read_from_buffer(buffer, *lenp, ppos, tmpbuf, len); } static int