Hi folks,
in an earlier question, I asked how to solve the Oops that can be caused in
2.0 kernels if you remove a module which created a new /proc subdirectory.
You get the Oops if a process was using that subdirectory as its current
working directory at removal time and tries to access it after removal.
Oleg Drokin (green@ccssu.crimea.ua) was kind enough to direct me to
the fill_inode call-back function in the proc_dir_entry structure. For 2.1
kernels, you can use it to increase/decrease the module use count when
such a directory is accessed. This would make removing the module impossible
at such times. But 2.0 has different fill_inode conventions, regrettably.
There is at least one module in stock 2.0.36pre19 kernels which also
exhibits this problem: fdomain, the Future Domain SCSI driver. I am
quite sure this bug is still in 2.0.36 proper.
My question: how can you prevent this Oops from happening in 2.0 kernels?
If it possible to monitor both a process moving into a directory and
it moving out again, like with fill_inode in 2.1 kernels, I would really
like to know how to do this. In this case, at least the fdomain driver
would need to be fixed. If it is impossible, perhaps a 2.0.37 is needed
which ports the fill_inode feature from 2.1 kernels.
Thanks for any help,
Frodo
-- Frodo Looijaard <frodol@dds.nl> PGP key and more: http://huizen.dds.nl/~frodol At my homepage you will also find a guide for installing glibc under Linux. New: Linux hardware monitoring kernel modules (LM78/79/80, Winbond etc.)- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/