[PATCH] dup fd error fix

Set errorp in dup_fd, it will be used in sys_unshare also.

Signed-off-by: Prasanna Meda <mlp@google.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Prasanna Meda 2006-06-23 02:05:23 -07:00 committed by Linus Torvalds
parent 538c5902b8
commit 6e66726047

View file

@ -625,6 +625,7 @@ static struct files_struct *alloc_files(void)
/* /*
* Allocate a new files structure and copy contents from the * Allocate a new files structure and copy contents from the
* passed in files structure. * passed in files structure.
* errorp will be valid only when the returned files_struct is NULL.
*/ */
static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
{ {
@ -633,6 +634,7 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
int open_files, size, i, expand; int open_files, size, i, expand;
struct fdtable *old_fdt, *new_fdt; struct fdtable *old_fdt, *new_fdt;
*errorp = -ENOMEM;
newf = alloc_files(); newf = alloc_files();
if (!newf) if (!newf)
goto out; goto out;
@ -746,7 +748,6 @@ static int copy_files(unsigned long clone_flags, struct task_struct * tsk)
* break this. * break this.
*/ */
tsk->files = NULL; tsk->files = NULL;
error = -ENOMEM;
newf = dup_fd(oldf, &error); newf = dup_fd(oldf, &error);
if (!newf) if (!newf)
goto out; goto out;