Declare the seq_operations and let procfs open and free the seq_file. ->proc_open() only records the event count for ->proc_poll() now. Signed-off-by: Christian Brauner (Amutable) --- mm/swapfile.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 254ce86fa923..ee4868ecc3a7 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3410,26 +3410,19 @@ static const struct seq_operations swaps_op = { .show = swap_show }; +/* procfs opens the seq_file */ static int swaps_open(struct inode *inode, struct file *file) { - struct seq_file *seq; - int ret; - - ret = seq_open(file, &swaps_op); - if (ret) - return ret; + struct seq_file *seq = file->private_data; - seq = file->private_data; seq->poll_event = atomic_read(&proc_poll_event); return 0; } static const struct proc_ops swaps_proc_ops = { .proc_flags = PROC_ENTRY_PERMANENT, + .proc_seq_ops = &swaps_op, .proc_open = swaps_open, - .proc_read = seq_read, - .proc_lseek = seq_lseek, - .proc_release = seq_release, .proc_poll = swaps_poll, }; -- 2.53.0