Re: Ideas for v2.1

Eric Youngdale (eric@aib.com)
Thu, 13 Jun 1996 19:44:36 -0400


>I have
>
>/dev/hda -> IDE
>/dev/sda -> SCSI ID0
>/dev/sdb -> SCSI ID3
>/dev/sdc -> SCSI ID4
>/dev/sdd -> SCSI ID5
>
>Now I remove SCSI ID3. 'drive does not spin underwater error'
>
>/dev/sda -> SCSI ID0
>/dev/sdb -> SCSI ID4
>/dev/sdc -> SCSI ID5
>
>:-(
>
>Not too different from the scheme you criticized above. But it is
>already in there. And IMHO it sucks. :-(

Sigh. This is why I wrote scsidev. Take a look on tsx-11 in
pub/linux/ALPHA/scsi. People may argue as to whether this is the correct
approach, but it solves the problem you describe.

For those of you that don't know, scsidev is a user mode program
that populates a /dev/scsi/* tree with entries that look kind of similar to
what you get under Solaris. The idea is that you run it each time you boot
up, and the minor numbers for the entries are updated so that a given
entry in /dev/scsi/ always points to the same device even if some disk
didn't spin up.

Some people feel that it would be better to go with fixed
major/minor
mapping to devices. The idea certainly has it's merits, but until we get a
larger dev_t, this will impossible. I should point out that a 32 bit dev_t
will probably also be insufficient, and that a 64 bit dev_t would probably
be required. The main bit of work would be in fixing the filesystems to
hold the larger dev_t, and dealing with all of the backwards compatibility
issues. Bootup can also present challenges, as currently there are two bytes
in the boot block of the kernel image for the root filesystem major/minor,
and this would need to be fixed too.

-Eric

-- 
"The woods are lovely, dark and deep.  But I have promises to keep,
And lines to code before I sleep, And lines to code before I sleep."