files rcu optimization: Remove duplicated fget from fget_light. The code for fget is contained in fget_light. So call fget instead. Signed-off-by: Christoph Lameter Index: linux-2.6.18-rc1-mm1/fs/file_table.c =================================================================== --- linux-2.6.18-rc1-mm1.orig/fs/file_table.c 2006-07-10 16:27:41.828792097 -0700 +++ linux-2.6.18-rc1-mm1/fs/file_table.c 2006-07-10 16:27:44.911608780 -0700 @@ -232,16 +232,9 @@ struct file fastcall *fget_light(unsigne if (likely((atomic_read(&files->count) == 1))) { file = fcheck_files(files, fd); } else { - rcu_read_lock(); - file = fcheck_files(files, fd); - if (file) { - if (atomic_inc_not_zero(&file->f_count)) - *fput_needed = 1; - else - /* Didn't get the reference, someone's freed */ - file = NULL; - } - rcu_read_unlock(); + file = fget(fd); + if (file) + *fput_needed = 1; } return file;