[comp.unix.i386] DOS FS inode table overflow etc -- why ??

src@scuzzy.uucp (Source Admin) (05/30/90)

whats this ? i have this 30MB dos partition mounted on /dos and
when i say 'find /dos -print' i get a lot of
DOS FS inode table overflow
and
find: stat() failed: /dos/dirname/filename: file table overflow.
after find already printed out 184 pathnames.

how come ? i'm the only user and /dos is only 20% full.
and its just impossible that find uses up inodes.
this is with ISC 2.0.2 and aha-1540a. NINODES is 400.
-- 
Heiko Blume		blume@scuzzy.UUCP	FAX   (+49 30) 882 50 65
Kottbusser Damm 28	blume@netmbx.UUCP	VOICE (+49 30) 691 88 93
D-1000 Berlin 61				TELEX 184174 intro d

cpcahil@virtech.uucp (Conor P. Cahill) (06/01/90)

In article <1990May29.215243.370@scuzzy.uucp> src@scuzzy.uucp (Source Admin) writes:
>this is with ISC 2.0.2 and aha-1540a. NINODES is 400.

The problem is with NDOSINODES.  I posted the following fix just a couple
of days ago:

The straight scoop (for 386/ix) is:

run /etc/kconfig
select "configure a kernel"
Select add tunable parameters
Specify NDOSINODE
Specify 500		<--- or whatever number you might want

It will tell you NDOSINODE is a new parameter and ask you for 
the minimum, maximum and default.

I used 200 1000 200, respectively.

Now it will work correctly.  However you will get an warning message on 
the compile of the kernel about NDOSINODE being re-defined.

You may ignore this, or if you hate to see any warning message from 
any compile (especially one from the kernel compile) you can do the
following:


Edit the /etc/conf/pack.d/dos/space.c and move the line

#define	NDOSINODE	200		/* DOS-FSS inodes array */

to be after the #include of config.h.  You should also add a #ifndef
NDOSINODE before that line and a #endif after it.

So that section of the file will now look like:

#define MINSCTRSHFT     9               /* Minimum sector shift */
#define MAXSCTRSHFT     10              /* Maximun sector shift */
#define	NDOSFILSYS	5		/* DOS-FSS superblocks array */

#include "config.h"	/* for overriding above parameters */

#ifndef NDOSINODE
#define	NDOSINODE	200		/* DOS-FSS inodes array */
#endif /* NDOSINODE */

unsigned char minsctrshft = MINSCTRSHFT;

Good luck
>-- 
>Heiko Blume		blume@scuzzy.UUCP	FAX   (+49 30) 882 50 65
>Kottbusser Damm 28	blume@netmbx.UUCP	VOICE (+49 30) 691 88 93
>D-1000 Berlin 61				TELEX 184174 intro d


-- 
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.,
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170 

src@scuzzy.uucp (Source Admin) (06/04/90)

cpcahil@virtech.uucp (Conor P. Cahill) writes:

>In article <1990May29.215243.370@scuzzy.uucp> src@scuzzy.uucp (Source Admin) writes:
>>this is with ISC 2.0.2 and aha-1540a. NINODES is 400.

>The problem is with NDOSINODES.  I posted the following fix just a couple
>of days ago:

thanks for the information !!

however, i'd like to know WHY this happens, unfortunately i don't have sources
for find(1). why is it eating up inodes ?
-- 
Heiko Blume		blume@scuzzy.UUCP	FAX   (+49 30) 882 50 65
Kottbusser Damm 28	blume@netmbx.UUCP	VOICE (+49 30) 691 88 93
D-1000 Berlin 61				TELEX 184174 intro d