diff options
-rw-r--r-- | fs/proc/generic.c | 8 | ||||
-rw-r--r-- | fs/proc/root.c | 2 | ||||
-rw-r--r-- | include/linux/proc_fs.h | 17 |
3 files changed, 21 insertions, 6 deletions
diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 0f3d97d41b0f..9d53b39a9cf8 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c | |||
@@ -675,9 +675,10 @@ struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, | |||
675 | return ent; | 675 | return ent; |
676 | } | 676 | } |
677 | 677 | ||
678 | struct proc_dir_entry *proc_create(const char *name, mode_t mode, | 678 | struct proc_dir_entry *proc_create_data(const char *name, mode_t mode, |
679 | struct proc_dir_entry *parent, | 679 | struct proc_dir_entry *parent, |
680 | const struct file_operations *proc_fops) | 680 | const struct file_operations *proc_fops, |
681 | void *data) | ||
681 | { | 682 | { |
682 | struct proc_dir_entry *pde; | 683 | struct proc_dir_entry *pde; |
683 | nlink_t nlink; | 684 | nlink_t nlink; |
@@ -698,6 +699,7 @@ struct proc_dir_entry *proc_create(const char *name, mode_t mode, | |||
698 | if (!pde) | 699 | if (!pde) |
699 | goto out; | 700 | goto out; |
700 | pde->proc_fops = proc_fops; | 701 | pde->proc_fops = proc_fops; |
702 | pde->data = data; | ||
701 | if (proc_register(parent, pde) < 0) | 703 | if (proc_register(parent, pde) < 0) |
702 | goto out_free; | 704 | goto out_free; |
703 | return pde; | 705 | return pde; |
diff --git a/fs/proc/root.c b/fs/proc/root.c index c741b45a5503..95117538a4f6 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c | |||
@@ -230,5 +230,5 @@ void pid_ns_release_proc(struct pid_namespace *ns) | |||
230 | EXPORT_SYMBOL(proc_symlink); | 230 | EXPORT_SYMBOL(proc_symlink); |
231 | EXPORT_SYMBOL(proc_mkdir); | 231 | EXPORT_SYMBOL(proc_mkdir); |
232 | EXPORT_SYMBOL(create_proc_entry); | 232 | EXPORT_SYMBOL(create_proc_entry); |
233 | EXPORT_SYMBOL(proc_create); | 233 | EXPORT_SYMBOL(proc_create_data); |
234 | EXPORT_SYMBOL(remove_proc_entry); | 234 | EXPORT_SYMBOL(remove_proc_entry); |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 29abcb805754..9883bc942262 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -116,9 +116,10 @@ void de_put(struct proc_dir_entry *de); | |||
116 | 116 | ||
117 | extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, | 117 | extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, |
118 | struct proc_dir_entry *parent); | 118 | struct proc_dir_entry *parent); |
119 | struct proc_dir_entry *proc_create(const char *name, mode_t mode, | 119 | struct proc_dir_entry *proc_create_data(const char *name, mode_t mode, |
120 | struct proc_dir_entry *parent, | 120 | struct proc_dir_entry *parent, |
121 | const struct file_operations *proc_fops); | 121 | const struct file_operations *proc_fops, |
122 | void *data); | ||
122 | extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); | 123 | extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); |
123 | 124 | ||
124 | extern struct vfsmount *proc_mnt; | 125 | extern struct vfsmount *proc_mnt; |
@@ -173,6 +174,12 @@ extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *); | |||
173 | extern struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode, | 174 | extern struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode, |
174 | struct proc_dir_entry *parent); | 175 | struct proc_dir_entry *parent); |
175 | 176 | ||
177 | static inline struct proc_dir_entry *proc_create(const char *name, mode_t mode, | ||
178 | struct proc_dir_entry *parent, const struct file_operations *proc_fops) | ||
179 | { | ||
180 | return proc_create_data(name, mode, parent, proc_fops, NULL); | ||
181 | } | ||
182 | |||
176 | static inline struct proc_dir_entry *create_proc_read_entry(const char *name, | 183 | static inline struct proc_dir_entry *create_proc_read_entry(const char *name, |
177 | mode_t mode, struct proc_dir_entry *base, | 184 | mode_t mode, struct proc_dir_entry *base, |
178 | read_proc_t *read_proc, void * data) | 185 | read_proc_t *read_proc, void * data) |
@@ -214,6 +221,12 @@ static inline struct proc_dir_entry *proc_create(const char *name, | |||
214 | { | 221 | { |
215 | return NULL; | 222 | return NULL; |
216 | } | 223 | } |
224 | static inline struct proc_dir_entry *proc_create_data(const char *name, | ||
225 | mode_t mode, struct proc_dir_entry *parent, | ||
226 | const struct file_operations *proc_fops, void *data) | ||
227 | { | ||
228 | return NULL; | ||
229 | } | ||
217 | #define remove_proc_entry(name, parent) do {} while (0) | 230 | #define remove_proc_entry(name, parent) do {} while (0) |
218 | 231 | ||
219 | static inline struct proc_dir_entry *proc_symlink(const char *name, | 232 | static inline struct proc_dir_entry *proc_symlink(const char *name, |