[lvm-devel] Re: update support for cciss controller(s)

Mike Snitzer snitzer at redhat.com
Mon Nov 30 19:48:54 UTC 2009


On Mon, Nov 30 2009 at  2:30pm -0500,
Mike Snitzer <snitzer at redhat.com> wrote:

> The cciss driver calls register_blkdev() for each controller in the
> system.  The first 8 cciss controllers are given a fixed major
> (COMPAQ_CISS_MAJOR + i) and a name of: cciss%d
> 
> cciss controllers >8 get a dynamic major number.
> 
> Each controller supports a maximum of 16 partitions.
> 
> Update lvm's filtering to properly support the cciss controller (I left
> "cciss" for compatibility's sake).
> 
> (This enables dracut to drop its, incorrect, "cciss0" 'types' entry).
> 
> diff --git a/lib/filters/filter.c b/lib/filters/filter.c
> index 889b416..05da504 100644
> --- a/lib/filters/filter.c
> +++ b/lib/filters/filter.c
> @@ -96,6 +96,14 @@ static const device_info_t device_info[] = {
>  	{"nbd", 16},		/* Network Block Device */
>  	{"ida", 16},		/* Compaq SMART2 */
>  	{"cciss", 16},		/* Compaq CCISS array */
> +	{"cciss0", 16},		/* Compaq CCISS array */
> +	{"cciss1", 16},		/* Compaq CCISS array */
> +	{"cciss2", 16},		/* Compaq CCISS array */
> +	{"cciss3", 16},		/* Compaq CCISS array */
> +	{"cciss4", 16},		/* Compaq CCISS array */
> +	{"cciss5", 16},		/* Compaq CCISS array */
> +	{"cciss6", 16},		/* Compaq CCISS array */
> +	{"cciss7", 16},		/* Compaq CCISS array */
>  	{"ubd", 16},		/* User-mode virtual block device */
>  	{"ataraid", 16},	/* ATA Raid */
>  	{"drbd", 16},		/* Distributed Replicated Block Device */
> 


self-NACK

lvm doesn't need a literal match.  "cciss" is a catch all for cciss%d
(see 'for (j = 0; device_info[j].name != NULL; j++)' loop in
lib/filters/filter.c:_scan_proc_dev)

(begs the question: why did dracut feel compelled to add a "cciss0"
entry?  afaik a single cciss controller can't support 1024 partitions :)

Mike




More information about the lvm-devel mailing list