summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-02-10 04:22:17 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2018-02-10 04:22:17 +0100
commit878e66d06fd098a744b9caafdd0e99bba415ce37 (patch)
tree71a5cceab7713eb01b1a15a544124dbe2f6e07fc /fs
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (diff)
parentseq_file: fix incomplete reset on read from zero offset (diff)
downloadlinux-878e66d06fd098a744b9caafdd0e99bba415ce37.tar.xz
linux-878e66d06fd098a744b9caafdd0e99bba415ce37.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull misc vfs fixes from Al Viro. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: seq_file: fix incomplete reset on read from zero offset kernfs: fix regression in kernfs_fop_write caused by wrong type
Diffstat (limited to 'fs')
-rw-r--r--fs/kernfs/file.c2
-rw-r--r--fs/seq_file.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index c53d9cc5ae7a..a03ce3422578 100644
--- a/fs/kernfs/file.c
+++ b/fs/kernfs/file.c
@@ -275,7 +275,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf,
{
struct kernfs_open_file *of = kernfs_of(file);
const struct kernfs_ops *ops;
- size_t len;
+ ssize_t len;
char *buf;
if (of->atomic_write_len) {
diff --git a/fs/seq_file.c b/fs/seq_file.c
index 4be761c1a03d..eea09f6d8830 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -181,8 +181,11 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
* if request is to read from zero offset, reset iterator to first
* record as it might have been already advanced by previous requests
*/
- if (*ppos == 0)
+ if (*ppos == 0) {
m->index = 0;
+ m->version = 0;
+ m->count = 0;
+ }
/* Don't assume *ppos is where we left it */
if (unlikely(*ppos != m->read_pos)) {