Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / fs / file.c
index b3c6b82..4c2cacc 100644 (file)
--- a/fs/file.c
+++ b/fs/file.c
@@ -240,9 +240,13 @@ static struct fdtable *alloc_fdtable(int nr)
        if (!fdt)
                goto out;
 
-       nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nr + 1));
-       if (nfds > NR_OPEN)
-               nfds = NR_OPEN;
+       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;
+       }
 
        new_openset = alloc_fdset(nfds);
        new_execset = alloc_fdset(nfds);