diff -urp linux-2.6-orig/fs/file.c linux-2.6/fs/file.c --- linux-2.6-orig/fs/file.c 2006-07-10 12:10:51.000000000 +0400 +++ linux-2.6/fs/file.c 2006-07-10 14:47:01.000000000 +0400 @@ -277,11 +277,13 @@ static struct fdtable *alloc_fdtable(int } while (nfds <= nr); new_fds = alloc_fd_array(nfds); if (!new_fds) - goto out; + goto out2; fdt->fd = new_fds; fdt->max_fds = nfds; fdt->free_files = NULL; return fdt; +out2: + nfds = fdt->max_fdset; out: if (new_openset) free_fdset(new_openset, nfds);