diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/dcache.c | 2 | ||||
| -rw-r--r-- | fs/seq_file.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 09e2eda55c5..4560aeda813 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -2724,7 +2724,7 @@ char *dynamic_dname(struct dentry *dentry, char *buffer, int buflen, const char *fmt, ...) { va_list args; - char temp[64]; + char temp[256]; int sz; va_start(args, fmt); diff --git a/fs/seq_file.c b/fs/seq_file.c index 0cbd0494b79..b857a379616 100644 --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -132,6 +132,7 @@ static int traverse(struct seq_file *m, loff_t offset) Eoverflow: m->op->stop(m, p); kfree(m->buf); + m->count = 0; m->buf = kmalloc(m->size <<= 1, GFP_KERNEL); return !m->buf ? -ENOMEM : -EAGAIN; } @@ -228,10 +229,10 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) goto Fill; m->op->stop(m, p); kfree(m->buf); + m->count = 0; m->buf = kmalloc(m->size <<= 1, GFP_KERNEL); if (!m->buf) goto Enomem; - m->count = 0; m->version = 0; pos = m->index; p = m->op->start(m, &pos); @@ -324,6 +325,8 @@ loff_t seq_lseek(struct file *file, loff_t offset, int origin) m->read_pos = offset; retval = file->f_pos = offset; } + } else { + file->f_pos = offset; } } file->f_version = m->version; |
