diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2012-04-05 17:25:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-05 18:25:50 -0400 |
commit | 234e340582901211f40d8c732afc49f0630ecf05 (patch) | |
tree | 753076500dfd883b3db56d4f5410af31d8945623 /drivers/oprofile/oprofilefs.c | |
parent | 9b3ae64be658a573b33d05a8dc73b08d3345fa44 (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/oprofilefs.c')
-rw-r--r-- | drivers/oprofile/oprofilefs.c | 14 |
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 | ||
120 | static 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 | |||
128 | static const struct file_operations ulong_fops = { | 120 | static 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 | ||
136 | static const struct file_operations ulong_ro_fops = { | 128 | static 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 | ||
188 | static const struct file_operations atomic_ro_fops = { | 180 | static 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 | ||