sunrpc: use simple_read_from_buffer for reading cache flush
authorKinglong Mee <kinglongmee@gmail.com>
Tue, 7 Feb 2017 13:50:32 +0000 (21:50 +0800)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 8 Feb 2017 22:02:47 +0000 (17:02 -0500)
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/cache.c

index 9e8561d1714d007dca45f91f4e537282fb276614..2f06f510b570ded38122be36bccf659ca3a88e18 100644 (file)
@@ -1427,20 +1427,11 @@ static ssize_t read_flush(struct file *file, char __user *buf,
                          struct cache_detail *cd)
 {
        char tbuf[22];
-       unsigned long p = *ppos;
        size_t len;
 
-       snprintf(tbuf, sizeof(tbuf), "%lu\n", convert_to_wallclock(cd->flush_time));
-       len = strlen(tbuf);
-       if (p >= len)
-               return 0;
-       len -= p;
-       if (len > count)
-               len = count;
-       if (copy_to_user(buf, (void*)(tbuf+p), len))
-               return -EFAULT;
-       *ppos += len;
-       return len;
+       len = snprintf(tbuf, sizeof(tbuf), "%lu\n",
+                       convert_to_wallclock(cd->flush_time));
+       return simple_read_from_buffer(buf, count, ppos, tbuf, len);
 }
 
 static ssize_t write_flush(struct file *file, const char __user *buf,