scripts/coccinelle/api/simple_open.cocci

Source file repositories/reference/linux-study-clean/scripts/coccinelle/api/simple_open.cocci

File Facts

System
Linux kernel
Corpus path
scripts/coccinelle/api/simple_open.cocci
Extension
.cocci
Size
1244 bytes
Lines
72
Domain
Support Tooling And Documentation
Bucket
scripts
Inferred role
Support Tooling And Documentation: operation-table or driver-model contract
Status
pattern implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

struct file_operations fops = {
...,
-.open = open_f,
+.open = simple_open,
...
};

@ openr depends on report @
identifier open_f != simple_open;
identifier i, f;
position p;
@@
int open_f@p(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_openr depends on openr @
identifier fops;
identifier openr.open_f;
position p;
@@
struct file_operations fops = {
...,
.open = open_f@p,
...
};

@script:python@
pf << openr.p;
ps << has_openr.p;
@@

coccilib.report.print_report(pf[0],"WARNING opportunity for simple_open, see also structure on line %s"%(ps[0].line))

Annotation

Implementation Notes