Re: super.c - kerneld race condition in 2.0.27

Olaf Titz (
03 Jan 1997 12:24:00 +0100

<> wrote:
> When trying to mount the disk with '-t iso9660', kerneld is caused
> to immediately load 'isofs.o'. During the time that the IDE-CD
> block driver is retrying and refailing to read the non-existent
> disk, kerneld times out on isofs.o (it is not marked as in use at
> this point) and unloads it. When the IDE-CD driver returns with

I have seen a similar error with the PPP module. Other symptoms (pppd
just fails), same cause: kerneld loads module, waiting for something
else to happen is longer than the kerneld timeout, it unloads the
module which is in fact not free.

Perhaps this could be avoided by introducing a "preloaded" state for a
module. A module that is requested (loaded by kerneld) but not opened
(MOD_INC_USE_COUNT) remains in this state either until it is opened or
manually unloaded (no timeout - rationale: a module gets only
preloaded if it is going to be used sometime).

This could perhaps be implemented in kerneld without kernel
assistance: just after a module "times out", it is checked whether it
has the "preloaded" flag, and if yes, it doesn't get unloaded. If it
is in use now, the preloaded flag gets cleared.



___ or @{stud,informatik}       ____
__ o           <URL:>     <IRC:praetorius>
__/<_              >> Just as long as the wheels keep on turning round
_)>(_)______________ I will live for the groove 'til the sun goes down << ____