Re: [RFC PATCH 35/35] Add Xen virtual block device driver.

Anthony Liguori
2006-03-22T16:39:49Z

Chris Wright wrote:
> The block device frontend driver allows the kernel to access block
> devices exported exported by a virtual machine containing a physical
> block device driver.
>

> +
> +static struct xlbd_type_info xlbd_ide_type = {
> + .partn_shift = 6,
> + .disks_per_major = 2,
> + .devname = "ide",
> + .diskname = "hd",
> +};
> +
> +static struct xlbd_type_info xlbd_scsi_type = {
> + .partn_shift = 4,
> + .disks_per_major = 16,
> + .devname = "sd",
> + .diskname = "sd",
> +};
> +
> +static struct xlbd_type_info xlbd_vbd_type = {
> + .partn_shift = 4,
> + .disks_per_major = 16,
> + .devname = "xvd",
> + .diskname = "xvd",
> +};
>

This is another thing that has always put me off. The virtual block
device driver has the ability to masquerade as other types of block
devices. It actually claims to be an IDE or SCSI device allocating the
appropriate major/minor numbers.

This seems to be pretty evil and creating interesting failure conditions
for users who load IDE or SCSI modules. I've seen it trip up a number
of people in the past. I think we should only ever use the major number
that was actually allocated to us.

Regards,

Anthony Liguori