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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html