summaryrefslogtreecommitdiffstats
path: root/fs/proc/generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/generic.c')
-rw-r--r--fs/proc/generic.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index af644caaaf85..f87cb0053387 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -560,6 +560,8 @@ static int proc_seq_open(struct inode *inode, struct file *file)
560{ 560{
561 struct proc_dir_entry *de = PDE(inode); 561 struct proc_dir_entry *de = PDE(inode);
562 562
563 if (de->state_size)
564 return seq_open_private(file, de->seq_ops, de->state_size);
563 return seq_open(file, de->seq_ops); 565 return seq_open(file, de->seq_ops);
564} 566}
565 567
@@ -570,9 +572,9 @@ static const struct file_operations proc_seq_fops = {
570 .release = seq_release, 572 .release = seq_release,
571}; 573};
572 574
573struct proc_dir_entry *proc_create_seq_data(const char *name, umode_t mode, 575struct proc_dir_entry *proc_create_seq_private(const char *name, umode_t mode,
574 struct proc_dir_entry *parent, const struct seq_operations *ops, 576 struct proc_dir_entry *parent, const struct seq_operations *ops,
575 void *data) 577 unsigned int state_size, void *data)
576{ 578{
577 struct proc_dir_entry *p; 579 struct proc_dir_entry *p;
578 580
@@ -581,9 +583,10 @@ struct proc_dir_entry *proc_create_seq_data(const char *name, umode_t mode,
581 return NULL; 583 return NULL;
582 p->proc_fops = &proc_seq_fops; 584 p->proc_fops = &proc_seq_fops;
583 p->seq_ops = ops; 585 p->seq_ops = ops;
586 p->state_size = state_size;
584 return proc_register(parent, p); 587 return proc_register(parent, p);
585} 588}
586EXPORT_SYMBOL(proc_create_seq_data); 589EXPORT_SYMBOL(proc_create_seq_private);
587 590
588void proc_set_size(struct proc_dir_entry *de, loff_t size) 591void proc_set_size(struct proc_dir_entry *de, loff_t size)
589{ 592{