projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NFS: Fix up split of fs/nfs/inode.c
[powerpc.git]
/
fs
/
file.c
diff --git
a/fs/file.c
b/fs/file.c
index
bbc7433
..
b3c6b82
100644
(file)
--- a/
fs/file.c
+++ b/
fs/file.c
@@
-240,13
+240,9
@@
static struct fdtable *alloc_fdtable(int nr)
if (!fdt)
goto out;
if (!fdt)
goto out;
- nfds = 8 * L1_CACHE_BYTES;
- /* Expand to the max in easy steps */
- while (nfds <= nr) {
- nfds = nfds * 2;
- if (nfds > NR_OPEN)
- nfds = NR_OPEN;
- }
+ nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nr + 1));
+ if (nfds > NR_OPEN)
+ nfds = NR_OPEN;
new_openset = alloc_fdset(nfds);
new_execset = alloc_fdset(nfds);
new_openset = alloc_fdset(nfds);
new_execset = alloc_fdset(nfds);
@@
-277,11
+273,13
@@
static struct fdtable *alloc_fdtable(int nr)
} while (nfds <= nr);
new_fds = alloc_fd_array(nfds);
if (!new_fds)
} while (nfds <= nr);
new_fds = alloc_fd_array(nfds);
if (!new_fds)
- goto out;
+ goto out
2
;
fdt->fd = new_fds;
fdt->max_fds = nfds;
fdt->free_files = NULL;
return fdt;
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);
out:
if (new_openset)
free_fdset(new_openset, nfds);
@@
-373,6
+371,6
@@
static void __devinit fdtable_defer_list_init(int cpu)
void __init files_defer_init(void)
{
int i;
void __init files_defer_init(void)
{
int i;
- for_each_cpu(i)
+ for_each_
possible_
cpu(i)
fdtable_defer_list_init(i);
}
fdtable_defer_list_init(i);
}