Re: super.c - kerneld race condition in 2.0.27

Erik Andersen (andersee@et.byu.edu)
Thu, 2 Jan 1997 01:21:31 -0700


On Jan 2, 1997, tyson@rwii.com (tyson@rwii.com) wrote:
> >From linux/fs/super.c and linux/CREDITS
> ---------------------------------------
> Added kerneld support: Jacques Gelinas and Bjorn Ekwall
> jacques@solucorp.qc.ca, bj0rn@blox.se
>
> >From linux/drivers/ide-cd.c and linux/CREDITS
> ---------------------------------------------
> N: Scott Snyder
> E: snyder@fnald0.fnal.gov

Actually, Scott has moved on to other things. I am the ide-cd maintainer
now. I should probably have Linus list me as the Maintainer for 2.0.28 so
people will stop bothering scott.

>
>
> Below is what I think is a fairly well documented oops. However, after
> a bit of research I think that what causes the oops is more interesting
> than the remains after it. This is from Linux-2.0.27.
>
> The problem seems to be a race condition between block device drivers,
> the VFS and kerneld. If I try to mount an IDE-CDROM drive with no
> disk in the drive, the IDE-CD takes 1-2 minutes to determine that
> it can't read the non-existent disk. It would be really nice if
> the IDE-CD driver didn't take so long to time-out and fail but
> that isn't the real problem.
>
> 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
> failure, linux/fs/super.c attempts to access the iso9660 fs code
> that has been unloaded by kerneld and causes the oops below.
>
[----snip, snip, snip-----]

Hmmm. I'll look into this one. Since I don't have to go back to work
until Monday (Jan 6), I should be able to do something about this little
problem before then.

> Cheers!
> Ty
>

-Erik

--
Erik B. Andersen        Web:    http://www.et.byu.edu/~andersee/ 
2485 South State St.    email:  andersee@et.byu.edu or andersee@debian.org
Springville, Ut 84663   phone:  (801) 489-1231
--This message was written using 73% post-consumer electrons--