aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/proc_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/proc_fs.h')
-rw-r--r--include/linux/proc_fs.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 3469f96bc8b2..28e3664fdf1b 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -7,6 +7,8 @@
7#include <linux/magic.h> 7#include <linux/magic.h>
8#include <asm/atomic.h> 8#include <asm/atomic.h>
9 9
10struct completion;
11
10/* 12/*
11 * The proc filesystem constants/structures 13 * The proc filesystem constants/structures
12 */ 14 */
@@ -56,6 +58,14 @@ struct proc_dir_entry {
56 gid_t gid; 58 gid_t gid;
57 loff_t size; 59 loff_t size;
58 const struct inode_operations *proc_iops; 60 const struct inode_operations *proc_iops;
61 /*
62 * NULL ->proc_fops means "PDE is going away RSN" or
63 * "PDE is just created". In either case, e.g. ->read_proc won't be
64 * called because it's too late or too early, respectively.
65 *
66 * If you're allocating ->proc_fops dynamically, save a pointer
67 * somewhere.
68 */
59 const struct file_operations *proc_fops; 69 const struct file_operations *proc_fops;
60 get_info_t *get_info; 70 get_info_t *get_info;
61 struct module *owner; 71 struct module *owner;
@@ -66,6 +76,9 @@ struct proc_dir_entry {
66 atomic_t count; /* use count */ 76 atomic_t count; /* use count */
67 int deleted; /* delete flag */ 77 int deleted; /* delete flag */
68 void *set; 78 void *set;
79 int pde_users; /* number of callers into module in progress */
80 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
81 struct completion *pde_unload_completion;
69}; 82};
70 83
71struct kcore_list { 84struct kcore_list {