aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-12-13 19:38:09 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2011-01-17 03:26:27 -0500
commit3bc0ba4305fa99b32caac8c60df84a2f14fce228 (patch)
tree052d07f14002de3b643048668ed68241335fc786
parentc2b3e74b78b24cb367289a75a2bd30e569e56e0e (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>
-rw-r--r--fs/file_table.c2
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();