Procfs open hook bug.
I have done this little patch for the procfs_example.c
diff procfs_example.c kernels/linux-2.4.20/Documentation/DocBook/procfs_example.c 87,91d86
< static int open_qp(struct inode * inode, struct file * file)
< {
< printk("Open my node %p %p \n",inode,file);
< return -EINVAL;
< }
180c175
< foo_file->proc_fops->open=open_qp;
---
Quoted 1 line
And when loading this module. The procfs gets broken. I get EINVAL for open on /proc/meminfo and all other procfs info. Why? Should procfs inodes don't have full filesematics? And it don't help to unload the module.
Strange. And a look in generic.c in fs/proc/
static struct file_operations proc_file_operations = {
llseek: proc_file_lseek,
read: proc_file_read,
write: proc_file_write,
};
Is this saying that we can not have the other fops on procfs inodes? No ioctl,open ?
Quoted 5 lines · Peter Enderborg
And when loading this module. The procfs gets broken. I get EINVAL for open on
/proc/meminfoand all other procfs info. Why? Should procfs inodes don't have full
filesematics? And it don't help to unload the module.
If you look at other file systems you'll see they swap the file operations pointer