Module reference count and /proc directories

Frodo Looijaard (frodol@dds.nl)
Mon, 7 Dec 1998 19:24:31 +0100 (CET)


(Cross-posted to Alan Cox because this is about a 2.0 bug)

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/