Skip to contentSkip to conversation

Procfs open hook bug.

DISCUSSION Peter Enderborg 2 participants 2 messages Jul 1, 2003

lore
Share & tools
lore
#0 lore raw

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 ?

#1 lore raw
Quoted 5 lines · Peter Enderborg

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.

If you look at other file systems you'll see they swap the file operations pointer