[PATCH] alloc_fdtable() expansion fix
authorAndrew Morton <akpm@osdl.org>
Wed, 12 Jul 2006 16:03:08 +0000 (09:03 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 12 Jul 2006 19:52:55 +0000 (12:52 -0700)
We're supposed to go the next power of two if nfds==nr.

Of `nr', not of `nfsd'.

Spotted by Rene Scharfe <rene.scharfe@lsrfire.ath.cx>

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/file.c

index c8f1b0af8e0004c8ca901e8e6babb5877fd5cc21..b3c6b82e6a9d8629446e77268a83a2c5c4eb1b62 100644 (file)
--- a/fs/file.c
+++ b/fs/file.c
@@ -240,7 +240,7 @@ static struct fdtable *alloc_fdtable(int nr)
        if (!fdt)
                goto out;
 
-       nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nfds));
+       nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nr + 1));
        if (nfds > NR_OPEN)
                nfds = NR_OPEN;