diff options
Diffstat (limited to 'fs/dlm/debug_fs.c')
| -rw-r--r-- | fs/dlm/debug_fs.c | 62 | 
1 files changed, 48 insertions, 14 deletions
diff --git a/fs/dlm/debug_fs.c b/fs/dlm/debug_fs.c index eea64912c9c0..466f7d60edc2 100644 --- a/fs/dlm/debug_fs.c +++ b/fs/dlm/debug_fs.c @@ -607,20 +607,54 @@ static const struct file_operations format2_fops;  static const struct file_operations format3_fops;  static const struct file_operations format4_fops; -static int table_open(struct inode *inode, struct file *file) +static int table_open1(struct inode *inode, struct file *file)  {  	struct seq_file *seq; -	int ret = -1; +	int ret; -	if (file->f_op == &format1_fops) -		ret = seq_open(file, &format1_seq_ops); -	else if (file->f_op == &format2_fops) -		ret = seq_open(file, &format2_seq_ops); -	else if (file->f_op == &format3_fops) -		ret = seq_open(file, &format3_seq_ops); -	else if (file->f_op == &format4_fops) -		ret = seq_open(file, &format4_seq_ops); +	ret = seq_open(file, &format1_seq_ops); +	if (ret) +		return ret; + +	seq = file->private_data; +	seq->private = inode->i_private; /* the dlm_ls */ +	return 0; +} + +static int table_open2(struct inode *inode, struct file *file) +{ +	struct seq_file *seq; +	int ret; + +	ret = seq_open(file, &format2_seq_ops); +	if (ret) +		return ret; + +	seq = file->private_data; +	seq->private = inode->i_private; /* the dlm_ls */ +	return 0; +} + +static int table_open3(struct inode *inode, struct file *file) +{ +	struct seq_file *seq; +	int ret; + +	ret = seq_open(file, &format3_seq_ops); +	if (ret) +		return ret; + +	seq = file->private_data; +	seq->private = inode->i_private; /* the dlm_ls */ +	return 0; +} + +static int table_open4(struct inode *inode, struct file *file) +{ +	struct seq_file *seq; +	int ret; +	ret = seq_open(file, &format4_seq_ops);  	if (ret)  		return ret; @@ -631,7 +665,7 @@ static int table_open(struct inode *inode, struct file *file)  static const struct file_operations format1_fops = {  	.owner   = THIS_MODULE, -	.open    = table_open, +	.open    = table_open1,  	.read    = seq_read,  	.llseek  = seq_lseek,  	.release = seq_release @@ -639,7 +673,7 @@ static const struct file_operations format1_fops = {  static const struct file_operations format2_fops = {  	.owner   = THIS_MODULE, -	.open    = table_open, +	.open    = table_open2,  	.read    = seq_read,  	.llseek  = seq_lseek,  	.release = seq_release @@ -647,7 +681,7 @@ static const struct file_operations format2_fops = {  static const struct file_operations format3_fops = {  	.owner   = THIS_MODULE, -	.open    = table_open, +	.open    = table_open3,  	.read    = seq_read,  	.llseek  = seq_lseek,  	.release = seq_release @@ -655,7 +689,7 @@ static const struct file_operations format3_fops = {  static const struct file_operations format4_fops = {  	.owner   = THIS_MODULE, -	.open    = table_open, +	.open    = table_open4,  	.read    = seq_read,  	.llseek  = seq_lseek,  	.release = seq_release  | 
