aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/oprofile
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2012-04-05 17:25:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-04-05 18:25:50 -0400
commit234e340582901211f40d8c732afc49f0630ecf05 (patch)
tree753076500dfd883b3db56d4f5410af31d8945623 /drivers/oprofile
parent9b3ae64be658a573b33d05a8dc73b08d3345fa44 (diff)
simple_open: automatically convert to simple_open()
Many users of debugfs copy the implementation of default_open() when they want to support a custom read/write function op. This leads to a proliferation of the default_open() implementation across the entire tree. Now that the common implementation has been consolidated into libfs we can replace all the users of this function with simple_open(). This replacement was done with the following semantic patch: <smpl> @ open @ identifier open_f != simple_open; identifier i, f; @@ -int open_f(struct inode *i, struct file *f) -{ ( -if (i->i_private) -f->private_data = i->i_private; | -f->private_data = i->i_private; ) -return 0; -} @ has_open depends on open @ identifier fops; identifier open.open_f; @@ struct file_operations fops = { ... -.open = open_f, +.open = simple_open, ... }; </smpl> [akpm@linux-foundation.org: checkpatch fixes] Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/oprofile')
-rw-r--r--drivers/oprofile/oprofilefs.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
index ee8fd037bb53..849357c1045c 100644
--- a/drivers/oprofile/oprofilefs.c
+++ b/drivers/oprofile/oprofilefs.c
@@ -117,25 +117,17 @@ static ssize_t ulong_write_file(struct file *file, char const __user *buf, size_
117} 117}
118 118
119 119
120static int default_open(struct inode *inode, struct file *filp)
121{
122 if (inode->i_private)
123 filp->private_data = inode->i_private;
124 return 0;
125}
126
127
128static const struct file_operations ulong_fops = { 120static const struct file_operations ulong_fops = {
129 .read = ulong_read_file, 121 .read = ulong_read_file,
130 .write = ulong_write_file, 122 .write = ulong_write_file,
131 .open = default_open, 123 .open = simple_open,
132 .llseek = default_llseek, 124 .llseek = default_llseek,
133}; 125};
134 126
135 127
136static const struct file_operations ulong_ro_fops = { 128static const struct file_operations ulong_ro_fops = {
137 .read = ulong_read_file, 129 .read = ulong_read_file,
138 .open = default_open, 130 .open = simple_open,
139 .llseek = default_llseek, 131 .llseek = default_llseek,
140}; 132};
141 133
@@ -187,7 +179,7 @@ static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t coun
187 179
188static const struct file_operations atomic_ro_fops = { 180static const struct file_operations atomic_ro_fops = {
189 .read = atomic_read_file, 181 .read = atomic_read_file,
190 .open = default_open, 182 .open = simple_open,
191 .llseek = default_llseek, 183 .llseek = default_llseek,
192}; 184};
193 185