summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorFrederik Deweerdt <deweerdt@free.fr>2006-09-29 02:01:02 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-29 09:18:19 -0700
commitf7ca54f486d3b07f48b8bbc92705bde6ba98ee54 (patch)
tree33a464bf15016d5521c1c18f53af5c64a2cc06de /fs
parent87d7c8aca8670a772f74766c19e0345a606b67a9 (diff)
downloadlinux-f7ca54f486d3b07f48b8bbc92705bde6ba98ee54.tar.bz2
[PATCH] fix mem_write() return value
At the beginning of the routine, "copied" is set to 0, but it is no good because in lines 805 and 812 it is set to other values. Finally, the routine returns as if it copied 12 (=ENOMEM) bytes less than it actually did. Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com> Acked-by: Eric Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/proc/base.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c
index fe8d55fb17cc..89c20d9d50bf 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -797,7 +797,7 @@ out_no_task:
static ssize_t mem_write(struct file * file, const char * buf,
size_t count, loff_t *ppos)
{
- int copied = 0;
+ int copied;
char *page;
struct task_struct *task = get_proc_task(file->f_dentry->d_inode);
unsigned long dst = *ppos;
@@ -814,6 +814,7 @@ static ssize_t mem_write(struct file * file, const char * buf,
if (!page)
goto out;
+ copied = 0;
while (count > 0) {
int this_len, retval;