Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a770e63 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull vfs fix from Al Viro:
 "Followup to procfs-seq_file series this window"

This fixes a memory leak by making sure that proc seq files release any
private data on close.  The 'proc_seq_open' has to be properly paired
with 'proc_seq_release' that releases the extra private data.

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  proc: add proc_seq_release
parents d7563ca5 877f919e
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -564,11 +564,20 @@ static int proc_seq_open(struct inode *inode, struct file *file)
	return seq_open(file, de->seq_ops);
}

static int proc_seq_release(struct inode *inode, struct file *file)
{
	struct proc_dir_entry *de = PDE(inode);

	if (de->state_size)
		return seq_release_private(inode, file);
	return seq_release(inode, file);
}

static const struct file_operations proc_seq_fops = {
	.open		= proc_seq_open,
	.read		= seq_read,
	.llseek		= seq_lseek,
	.release	= seq_release,
	.release	= proc_seq_release,
};

struct proc_dir_entry *proc_create_seq_private(const char *name, umode_t mode,