aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/internal.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-04-03 19:07:30 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-04-09 15:16:51 -0400
commit866ad9a747bbf5461739fcae6d0a41c8971bbe1d (patch)
tree6a94d3434bbb9034f9aeed68a59e799abf7f8ff2 /fs/proc/internal.h
parentad147d011f4e9d4e4309f7974fd19c7f875ccb14 (diff)
procfs: preparations for remove_proc_entry() race fixes
* leave ->proc_fops alone; make ->pde_users negative instead * trim pde_opener * move relevant code in fs/proc/inode.c Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/proc/internal.h')
-rw-r--r--fs/proc/internal.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/proc/internal.h b/fs/proc/internal.h
index 9c93a53f371d..c43d536f93b9 100644
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@ -151,12 +151,13 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
151 filldir_t filldir); 151 filldir_t filldir);
152 152
153struct pde_opener { 153struct pde_opener {
154 struct inode *inode;
155 struct file *file; 154 struct file *file;
156 int (*release)(struct inode *, struct file *);
157 struct list_head lh; 155 struct list_head lh;
158}; 156};
159void pde_users_dec(struct proc_dir_entry *pde); 157
158ssize_t __proc_file_read(struct file *, char __user *, size_t, loff_t *);
159extern const struct file_operations proc_file_operations;
160void proc_entry_rundown(struct proc_dir_entry *);
160 161
161extern spinlock_t proc_subdir_lock; 162extern spinlock_t proc_subdir_lock;
162 163