proc: remove INF macro
If you're applying this patch, all /proc/$PID/* files were converted to seq_file interface and this code became unused. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d962c14483
commit
8f053ac11f
|
@ -130,10 +130,6 @@ struct pid_entry {
|
||||||
{ .proc_get_link = get_link } )
|
{ .proc_get_link = get_link } )
|
||||||
#define REG(NAME, MODE, fops) \
|
#define REG(NAME, MODE, fops) \
|
||||||
NOD(NAME, (S_IFREG|(MODE)), NULL, &fops, {})
|
NOD(NAME, (S_IFREG|(MODE)), NULL, &fops, {})
|
||||||
#define INF(NAME, MODE, read) \
|
|
||||||
NOD(NAME, (S_IFREG|(MODE)), \
|
|
||||||
NULL, &proc_info_file_operations, \
|
|
||||||
{ .proc_read = read } )
|
|
||||||
#define ONE(NAME, MODE, show) \
|
#define ONE(NAME, MODE, show) \
|
||||||
NOD(NAME, (S_IFREG|(MODE)), \
|
NOD(NAME, (S_IFREG|(MODE)), \
|
||||||
NULL, &proc_single_file_operations, \
|
NULL, &proc_single_file_operations, \
|
||||||
|
@ -604,43 +600,6 @@ static const struct inode_operations proc_def_inode_operations = {
|
||||||
.setattr = proc_setattr,
|
.setattr = proc_setattr,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PROC_BLOCK_SIZE (3*1024) /* 4K page size but our output routines use some slack for overruns */
|
|
||||||
|
|
||||||
static ssize_t proc_info_read(struct file * file, char __user * buf,
|
|
||||||
size_t count, loff_t *ppos)
|
|
||||||
{
|
|
||||||
struct inode * inode = file_inode(file);
|
|
||||||
unsigned long page;
|
|
||||||
ssize_t length;
|
|
||||||
struct task_struct *task = get_proc_task(inode);
|
|
||||||
|
|
||||||
length = -ESRCH;
|
|
||||||
if (!task)
|
|
||||||
goto out_no_task;
|
|
||||||
|
|
||||||
if (count > PROC_BLOCK_SIZE)
|
|
||||||
count = PROC_BLOCK_SIZE;
|
|
||||||
|
|
||||||
length = -ENOMEM;
|
|
||||||
if (!(page = __get_free_page(GFP_TEMPORARY)))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
length = PROC_I(inode)->op.proc_read(task, (char*)page);
|
|
||||||
|
|
||||||
if (length >= 0)
|
|
||||||
length = simple_read_from_buffer(buf, count, ppos, (char *)page, length);
|
|
||||||
free_page(page);
|
|
||||||
out:
|
|
||||||
put_task_struct(task);
|
|
||||||
out_no_task:
|
|
||||||
return length;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct file_operations proc_info_file_operations = {
|
|
||||||
.read = proc_info_read,
|
|
||||||
.llseek = generic_file_llseek,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int proc_single_show(struct seq_file *m, void *v)
|
static int proc_single_show(struct seq_file *m, void *v)
|
||||||
{
|
{
|
||||||
struct inode *inode = m->private;
|
struct inode *inode = m->private;
|
||||||
|
|
|
@ -52,7 +52,6 @@ struct proc_dir_entry {
|
||||||
|
|
||||||
union proc_op {
|
union proc_op {
|
||||||
int (*proc_get_link)(struct dentry *, struct path *);
|
int (*proc_get_link)(struct dentry *, struct path *);
|
||||||
int (*proc_read)(struct task_struct *task, char *page);
|
|
||||||
int (*proc_show)(struct seq_file *m,
|
int (*proc_show)(struct seq_file *m,
|
||||||
struct pid_namespace *ns, struct pid *pid,
|
struct pid_namespace *ns, struct pid *pid,
|
||||||
struct task_struct *task);
|
struct task_struct *task);
|
||||||
|
|
Loading…
Reference in New Issue