浏览代码

[PATCH] alloc_fdtable() expansion fix

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>
Andrew Morton 19 年之前
父节点
当前提交
a29b0b74e7
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      fs/file.c

+ 1 - 1
fs/file.c

@@ -240,7 +240,7 @@ static struct fdtable *alloc_fdtable(int nr)
 	if (!fdt)
 	if (!fdt)
   		goto out;
   		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)
 	if (nfds > NR_OPEN)
 		nfds = NR_OPEN;
 		nfds = NR_OPEN;