diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-12-13 19:38:09 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-01-17 03:26:27 -0500 |
commit | 3bc0ba4305fa99b32caac8c60df84a2f14fce228 (patch) | |
tree | 052d07f14002de3b643048668ed68241335fc786 /fs/file_table.c | |
parent | c2b3e74b78b24cb367289a75a2bd30e569e56e0e (diff) |
fs: Remove unlikely() from fget_light()
There's an unlikely() in fget_light() that assumes the file ref count
will be 1. Running the annotate branch profiler on a desktop that is
performing daily tasks (running firefox, evolution, xchat and is also part
of a distcc farm), it shows that the ref count is not 1 that often.
correct incorrect % Function File Line
------- --------- - -------- ---- ----
1035099358 6209599193 85 fget_light file_table.c 315
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/file_table.c')
-rw-r--r-- | fs/file_table.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/file_table.c b/fs/file_table.c index c3dee381f1b4..c3e89adf53c0 100644 --- a/fs/file_table.c +++ b/fs/file_table.c | |||
@@ -311,7 +311,7 @@ struct file *fget_light(unsigned int fd, int *fput_needed) | |||
311 | struct files_struct *files = current->files; | 311 | struct files_struct *files = current->files; |
312 | 312 | ||
313 | *fput_needed = 0; | 313 | *fput_needed = 0; |
314 | if (likely((atomic_read(&files->count) == 1))) { | 314 | if (atomic_read(&files->count) == 1) { |
315 | file = fcheck_files(files, fd); | 315 | file = fcheck_files(files, fd); |
316 | } else { | 316 | } else { |
317 | rcu_read_lock(); | 317 | rcu_read_lock(); |