[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <b741c2440911172154g62d7f3bcu7bafc65ad2eb4b21@mail.gmail.com>
Date: Wed, 18 Nov 2009 13:54:34 +0800
From: Liu Aleaxander <aleaxander@...il.com>
To: Alexander Viro <viro@...iv.linux.org.uk>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org
Subject: [PATCH] vfs: does call expand_files when needed
From: Liu Aleaxander <Aleaxander@...il.com>
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@...il.com>
---
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists