From: Damien P. Neil (dpn2@po.CWRU.Edu)
Date: 12/16/92


From: dpn2@po.CWRU.Edu (Damien P. Neil)
Subject: 0.99 boot problems -- the solution
Date: Wed, 16 Dec 1992 06:32:33 GMT

For all people having 0.99 die on startup, here is the solution. There is a
small bug in 0.99 that needs to be fixed -- the patch was posted to this
newsgroup and c.o.l.a., but I (and others, apparently) managed to miss it. I
am reposting it below.

This should solve any/all boot problems. (At least it did for me! :-)

I FINISHED MY FINALS!!!!!!! 0.99 WORKS!!!!!!!!! LIFE IS GOOD!!!!!!!!! :-)

=============================================================================

From: torvalds@klaava.Helsinki.FI (Linus Torvalds)
Subject: IMPORTANT [BUG in 0.99] Re: [ANNOUNCE]: linux version 0.99
Keywords: kernel linux 0.99
Date: Mon, 14 Dec 1992 20:17:28 GMT

Simple but important bug-fixes follow. Please check them out if you
have had problems with 0.99.

In article <1992Dec14.174625.1102@galileo.cc.rochester.edu>
ctne_ltd@uhura.cc.rochester.edu (Chris Newbold) writes:
>
>Okay. I posted a note this morning about not being able to get 0.99 to boot.
>Well, I solved that problem... Just my own stupidity. *BUT*, I may have a
>bug to report here.
>
>I also posted another note about X locking up perodically (Subject was
>[BUG REPORT] swapping trouble ?!?). Now that I am running 0.99, the kernel
>manages to keep limping when X locks up--enough for syslogd to spit out what
>happens: I get a whole bunch of "No free inodes -- contact Linus" messages.

Good. I added code to handle the "out of inode" error more gracefully,
and it seems to have found the error pretty efficiently (well, I
suspected it already, which is why I wrote the code in the first place,
but now it's confirmed). Consider me contacted.

Sadly, the "out of inode" code has a silly bug that can lead to kernel
panics at bootup: the 'inode_wait' wait-queue is not correctly
initialized to NULL, so people booting from floppy may get bad values
here. So here are a couple of fixes for 0.99 - unofficial, but I would
like to hear if there are still problems after these:

 1) in linux/fs/inode.c, at the start, change

        static struct wait_queue * inode_wait;

    to

        static struct wait_queue * inode_wait = NULL;

 2) in linux/include/linux/fs.h, double the value of NR_INODE (to 256),
    ie change

        #define NR_INODE 128

    to

        #define NR_INODE 256

and see if that is enough (it really should be: NR_FILE is 128, so the
above value for NR_INODE should leave plenty of inodes for things like
executables etc). Hopefully you won't get the "No free inodes" problem
any more.

Note that I'll have to make the number of inodes dynamic, but I won't do
so for 1.0, as the changes would be big enough to be bug-prone. 1.0
need not be perfect, but I hope it will be stable.

                Linus

-- 
Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
=====
Damien Neil   dpn2@po.cwru.edu    "Until somebody debugs reality, the best
Case Western Reserve University    I can do is a quick patch here and there."
CMPS/EEAP double majoring masochist               - Erik Green