Commit af61b96b4f68f7ab25ebf34fed275fabf64f2edc
Committed by
Ingo Molnar
1 parent
7dc5215798
Exists in
master
and in
39 other branches
vfs: Abstract rcu_dereference_check for files-fdtable use
Create an rcu_dereference_check_fdtable() that encapsulates the rcu_dereference_check() condition for fcheck_files() use. This has the beneficial side-effect of getting rid of a very long line. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: laijs@cn.fujitsu.com Cc: dipankar@in.ibm.com Cc: mathieu.desnoyers@polymtl.ca Cc: josh@joshtriplett.org Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: peterz@infradead.org Cc: rostedt@goodmis.org Cc: Valdis.Kletnieks@vt.edu Cc: dhowells@redhat.com LKML-Reference: <1266887105-1528-9-git-send-email-paulmck@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 1 changed file with 7 additions and 4 deletions Side-by-side Diff
include/linux/fdtable.h
... | ... | @@ -57,12 +57,15 @@ |
57 | 57 | struct file * fd_array[NR_OPEN_DEFAULT]; |
58 | 58 | }; |
59 | 59 | |
60 | -#define files_fdtable(files) \ | |
61 | - (rcu_dereference_check((files)->fdt, \ | |
60 | +#define rcu_dereference_check_fdtable(files, fdtfd) \ | |
61 | + (rcu_dereference_check((fdtfd), \ | |
62 | 62 | rcu_read_lock_held() || \ |
63 | 63 | lockdep_is_held(&(files)->file_lock) || \ |
64 | - atomic_read(&files->count) == 1)) | |
64 | + atomic_read(&(files)->count) == 1)) | |
65 | 65 | |
66 | +#define files_fdtable(files) \ | |
67 | + (rcu_dereference_check_fdtable((files), (files)->fdt)) | |
68 | + | |
66 | 69 | struct file_operations; |
67 | 70 | struct vfsmount; |
68 | 71 | struct dentry; |
... | ... | @@ -82,7 +85,7 @@ |
82 | 85 | struct fdtable *fdt = files_fdtable(files); |
83 | 86 | |
84 | 87 | if (fd < fdt->max_fds) |
85 | - file = rcu_dereference_check(fdt->fd[fd], rcu_read_lock_held() || lockdep_is_held(&files->file_lock) || atomic_read(&files->count) == 1); | |
88 | + file = rcu_dereference_check_fdtable(files, fdt->fd[fd]); | |
86 | 89 | return file; |
87 | 90 | } |
88 | 91 |