proc: remove ->get_info infrastructure

Now that last dozen or so users of ->get_info were removed, ditch it too.
Everyone sane shouldd have switched to seq_file interface long ago.

P.S.: Co-existing 3 interfaces (->get_info/->read_proc/->proc_fops) for proc
      is long-standing crap, BTW, thus
      a) put ->read_proc/->write_proc/read_proc_entry() users on death row,
      b) new such users should be rejected,
      c) everyone is encouraged to convert his favourite ->read_proc user or
         I'll do it, lazy bastards.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Alexey Dobriyan 2008-04-29 01:01:58 -07:00 committed by Linus Torvalds
parent 352ced8e59
commit 8731f14d37
2 changed files with 2 additions and 20 deletions

View File

@ -69,12 +69,7 @@ proc_file_read(struct file *file, char __user *buf, size_t nbytes,
count = min_t(size_t, PROC_BLOCK_SIZE, nbytes); count = min_t(size_t, PROC_BLOCK_SIZE, nbytes);
start = NULL; start = NULL;
if (dp->get_info) { if (dp->read_proc) {
/* Handle old net routines */
n = dp->get_info(page, &start, *ppos, count);
if (n < count)
eof = 1;
} else if (dp->read_proc) {
/* /*
* How to be a proc read function * How to be a proc read function
* ------------------------------ * ------------------------------

View File

@ -40,7 +40,7 @@ enum {
* /proc file has a parent, but "subdir" is NULL for all * /proc file has a parent, but "subdir" is NULL for all
* non-directory entries). * non-directory entries).
* *
* "get_info" is called at "read", while "owner" is used to protect module * "owner" is used to protect module
* from unloading while proc_dir_entry is in use * from unloading while proc_dir_entry is in use
*/ */
@ -48,7 +48,6 @@ typedef int (read_proc_t)(char *page, char **start, off_t off,
int count, int *eof, void *data); int count, int *eof, void *data);
typedef int (write_proc_t)(struct file *file, const char __user *buffer, typedef int (write_proc_t)(struct file *file, const char __user *buffer,
unsigned long count, void *data); unsigned long count, void *data);
typedef int (get_info_t)(char *, char **, off_t, int);
struct proc_dir_entry { struct proc_dir_entry {
unsigned int low_ino; unsigned int low_ino;
@ -69,7 +68,6 @@ struct proc_dir_entry {
* somewhere. * somewhere.
*/ */
const struct file_operations *proc_fops; const struct file_operations *proc_fops;
get_info_t *get_info;
struct module *owner; struct module *owner;
struct proc_dir_entry *next, *parent, *subdir; struct proc_dir_entry *next, *parent, *subdir;
void *data; void *data;
@ -187,14 +185,6 @@ static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
return res; return res;
} }
static inline struct proc_dir_entry *create_proc_info_entry(const char *name,
mode_t mode, struct proc_dir_entry *base, get_info_t *get_info)
{
struct proc_dir_entry *res=create_proc_entry(name,mode,base);
if (res) res->get_info=get_info;
return res;
}
extern struct proc_dir_entry *proc_net_fops_create(struct net *net, extern struct proc_dir_entry *proc_net_fops_create(struct net *net,
const char *name, mode_t mode, const struct file_operations *fops); const char *name, mode_t mode, const struct file_operations *fops);
extern void proc_net_remove(struct net *net, const char *name); extern void proc_net_remove(struct net *net, const char *name);
@ -234,9 +224,6 @@ static inline struct proc_dir_entry *proc_mkdir(const char *name,
static inline struct proc_dir_entry *create_proc_read_entry(const char *name, static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
mode_t mode, struct proc_dir_entry *base, mode_t mode, struct proc_dir_entry *base,
read_proc_t *read_proc, void * data) { return NULL; } read_proc_t *read_proc, void * data) { return NULL; }
static inline struct proc_dir_entry *create_proc_info_entry(const char *name,
mode_t mode, struct proc_dir_entry *base, get_info_t *get_info)
{ return NULL; }
struct tty_driver; struct tty_driver;
static inline void proc_tty_register_driver(struct tty_driver *driver) {}; static inline void proc_tty_register_driver(struct tty_driver *driver) {};