[PATCH] vfs: does call expand_files when needed

From: Liu Aleaxander
Date: Wed Nov 18 2009 - 00:54:41 EST


From: Liu Aleaxander <Aleaxander@xxxxxxxxx>
Date: Wed, 18 Nov 2009 10:59:09 +0800
Subject: [PATCH] vfs: does call expand_files when needed

I don't think we should call expand_files every time we open a
file for a new unused fd, so does the expand when necessary.

Signed-off-by: Liu Aleaxander <Aleaxander@xxxxxxxxx>
---
fs/file.c | 27 ++++++++++++++-------------
1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/fs/file.c b/fs/file.c
index 87e1290..3f3d0fc 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -452,22 +452,22 @@ repeat:
if (fd < files->next_fd)
fd = files->next_fd;

- if (fd < fdt->max_fds)
+ if (likely(fd < fdt->max_fds)) {
fd = find_next_zero_bit(fdt->open_fds->fds_bits,
fdt->max_fds, fd);
-
- error = expand_files(files, fd);
- if (error < 0)
- goto out;
-
- /*
- * If we needed to expand the fs array we
- * might have blocked - try again.
- */
- if (error)
- goto repeat;
-
+ } else {
+ error = expand_files(files, fd);
+ if (error < 0)
+ goto out;
+
+ /*
+ * If we needed to expand the fs array we
+ * might have blocked - try again.
+ */
+ if (error)
+ goto repeat;
+ }
+
if (start <= files->next_fd)
files->next_fd = fd + 1;

--
1.6.2.5

--
regards
Liu Aleaxander
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/