mn10300: io: implement dummy relaxed accessor macros for writes
[linux/fpc-iii.git] / scripts / coccinelle / api / simple_open.cocci
blobb67e174f3d95effd048f0bf15a412aa536e2820e
1 /// This removes an open coded simple_open() function
2 /// and replaces file operations references to the function
3 /// with simple_open() instead.
4 ///
5 // Confidence: High
6 // Comments:
7 // Options: --no-includes --include-headers
9 virtual patch
10 virtual report
12 @ open depends on patch @
13 identifier open_f != simple_open;
14 identifier i, f;
16 -int open_f(struct inode *i, struct file *f)
19 -if (i->i_private)
20 -f->private_data = i->i_private;
22 -f->private_data = i->i_private;
24 -return 0;
27 @ has_open depends on open @
28 identifier fops;
29 identifier open.open_f;
31 struct file_operations fops = {
32 ...,
33 -.open = open_f,
34 +.open = simple_open,
35 ...
38 @ openr depends on report @
39 identifier open_f != simple_open;
40 identifier i, f;
41 position p;
43 int open_f@p(struct inode *i, struct file *f)
46 if (i->i_private)
47 f->private_data = i->i_private;
49 f->private_data = i->i_private;
51 return 0;
54 @ has_openr depends on openr @
55 identifier fops;
56 identifier openr.open_f;
57 position p;
59 struct file_operations fops = {
60 ...,
61 .open = open_f@p,
62 ...
65 @script:python@
66 pf << openr.p;
67 ps << has_openr.p;
70 coccilib.report.print_report(pf[0],"WARNING opportunity for simple_open, see also structure on line %s"%(ps[0].line))