aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/proc/generic.c8
-rw-r--r--fs/proc/root.c2
-rw-r--r--include/linux/proc_fs.h17
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
678struct proc_dir_entry *proc_create(const char *name, mode_t mode, 678struct 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)
230EXPORT_SYMBOL(proc_symlink); 230EXPORT_SYMBOL(proc_symlink);
231EXPORT_SYMBOL(proc_mkdir); 231EXPORT_SYMBOL(proc_mkdir);
232EXPORT_SYMBOL(create_proc_entry); 232EXPORT_SYMBOL(create_proc_entry);
233EXPORT_SYMBOL(proc_create); 233EXPORT_SYMBOL(proc_create_data);
234EXPORT_SYMBOL(remove_proc_entry); 234EXPORT_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
117extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, 117extern 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);
119struct proc_dir_entry *proc_create(const char *name, mode_t mode, 119struct 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);
122extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); 123extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent);
123 124
124extern struct vfsmount *proc_mnt; 125extern struct vfsmount *proc_mnt;
@@ -173,6 +174,12 @@ extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *);
173extern struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode, 174extern 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
177static 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
176static inline struct proc_dir_entry *create_proc_read_entry(const char *name, 183static 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}
224static 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
219static inline struct proc_dir_entry *proc_symlink(const char *name, 232static inline struct proc_dir_entry *proc_symlink(const char *name,