On 27 Aug, Pavel Merdine wrote: > Hello, > > I'd like to propose the following patch: > > ------------------------------------------------------------------ > --- ffs_alloc.c.orig Fri May 14 19:03:50 2004 > +++ ffs_alloc.c Sat Aug 7 03:36:32 2004 > @@ -712,7 +712,7 @@ > minbfree = 1; > cgsize = fs->fs_fsize * fs->fs_fpg; > dirsize = fs->fs_avgfilesize * fs->fs_avgfpdir; > - curdirsize = avgndir ? (cgsize - avgbfree * fs->fs_bsize) / avgndir : 0; > + curdirsize = avgndir ? (cgsize - avgbfree * fs->fs_bsize) / avgndir : 512; > if (dirsize < curdirsize) > dirsize = curdirsize; > maxcontigdirs = min((avgbfree * fs->fs_bsize) / dirsize, 255); > ------------------------------------------------------------------ > > It should solve the problem of "panic: integer divide fault" on the > last line of the code above. The panic happens on: > 1. directory creation > 2. when disk is empty > 3. when avg_dir_size avg_file_size are set to values, so > avg_dir_size * avg_file_size is negative in integer. > example: avg_dir_size = 8000, avf_file_size = 375000. > (curdirsize == 0 and dirsize < 0, so dirsize = 0)
I'd prefer to cap dirsize at cgsize in this case. Even without the panic, I think you'll find the performance of the file system in this case will be terrible. _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "[EMAIL PROTECTED]"