Subject: Re: config.new problem, is this just me?
To: Greg Oster <oster@skdad.usask.ca>
From: Chris G Demetriou <Chris_G_Demetriou@LAGAVULIN.PDL.CS.CMU.EDU>
List: current-users
Date: 01/25/1995 03:20:41
> Speaking of MAXPARTITIONS problems, a related problem exists in newfs.c:

and a lot of other places...

>                 if (cp == 0 || (*cp < 'a' || *cp > 'h') && !isdigit(*cp))
>                         fatal("%s: can't figure out file system partition",
>                             argv[0]);
> 
> where 'h' is hard-coded as the upper limit.  This makes it quite
> interesting trying to newfs such partitions as sd1i, sd1j, etc. on the 
> Amiga port (and likely any other port that supports more than 8
> partitions...)...
> 
> While a simple hack can make newfs work, that hack will not help
> resolve the MAXPARTITIONS issues like an elegant solution would...

well, i just added a new sysctl() variable, kern.maxpartitions.
one could get the value of that variable, then use it to check whether
the paritition letters are in range...

there are a couple of other things which are worth noting:
	(1) you can't use this trick for config.new -- it has the 
	    same problem as using MAXPARTITIONS, in that the
	    config file you're running config.new on may not match
	    your machine's MAXPARTITIONS
	(2) this code in newfs is arguably screwed for a couple of
	    reasons:
		(a) it makes no sense. (read the few lines before it,
		    etc., and _try_ to figure out exactly what it's
		    doing),
		(b) if you're labelling based on the partition number,
		    it's not clear to me that you want to get that
		    partition number from the device name...
	    looks like i get to look into _this_ a bit more.  8-)



chris