Re: [patch] convert the scsi layer to use struct device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2008-03-15 at 19:04 +0100, Kay Sievers wrote:
> On Sat, 2008-03-15 at 11:16 -0500, James Bottomley wrote:
> > > We just need to create something like a "contains" link from the
> > > component to the scsi device, and a "enclosure" link at the scsi device
> > > back to the component, right?
> > 
> > Assuming you're moving to the single tree model, then I can easily do
> > this:
> > 
> > <real enclosure device>/<enclosure>/<enclosure component>/device -> link
> > to component device
> 
> Yes, sounds good. Only that there will be no meaningful "device" link
> with !SYSFS_DEPRECATED, we need a custom link, maintained by the
> enclosure itself, to do that.
> 
> > with a back link in the component device pointing to the enclosure
> > component.
> 
> That sounds fine.
> 
> > The way components work, probably blowing away enclosure_component_class
> > makes the most sense anyway.
> 
> If we go for a single class, can't we express enclosures and components
> in the device name and put them in the same class like:
> /sys/class/enclosure/
> |- enclosure1 -> ../../../devices/<...>/enclosure1
> |- enclosure1.slot1 -> ../../../../devices/<...>/enclosure1/enclosure1.slot1
> |- enclosure1.slot2 -> ../../../../devices/<...>/enclosure1/enclosure1.slot2
> |- enclosure2 -> ../../../devices/<...>/enclosure2
> |- enclosure2.slot1 -> -> ../../../../devices/<...>/enclosure1/enclosure2.slot1
> ...
>  
> while /sys/devices/<...>/enclosure1/enclosure1.slot1/ has a something
> like a "contains" link pointing to the SCSI device, and the SCSI device
> an "enclosure" link back?

OK, I've got a two expander system with six slots each pretending to be
a twelve slot installation.  I've also got two slots populated (slot 1
and 6).  This is what it looks like with the deprecated setting:

sparkweed:/sys/class/enclosure# tree
.
|-- 0:0:1:0
|   |-- SLOT 006
|   |   |-- active
|   |   |-- device -> ../../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:0/end_device-0:0:0/target0:0:0/0:0:0:0
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- SLOT 007
|   |   |-- active
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- SLOT 008
|   |   |-- active
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- SLOT 009
|   |   |-- active
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- SLOT 010
|   |   |-- active
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- SLOT 011
|   |   |-- active
|   |   |-- fault
|   |   |-- locate
|   |   |-- power
|   |   |   `-- wakeup
|   |   |-- status
|   |   |-- type
|   |   `-- uevent
|   |-- components
|   |-- device -> ../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:12/end_device-0:0:12/target0:0:1/0:0:1:0
|   |-- power
|   |   `-- wakeup
|   |-- subsystem -> ../../enclosure
|   `-- uevent
`-- 0:0:3:0
    |-- SLOT 000
    |   |-- active
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- SLOT 001
    |   |-- active
    |   |-- device -> ../../../../devices/pci0000:01/0000:01:02.0/host0/port-0:1/expander-0:1/port-0:1:11/end_device-0:1:11/target0:0:2/0:0:2:0
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- SLOT 002
    |   |-- active
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- SLOT 003
    |   |-- active
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- SLOT 004
    |   |-- active
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- SLOT 005
    |   |-- active
    |   |-- fault
    |   |-- locate
    |   |-- power
    |   |   `-- wakeup
    |   |-- status
    |   |-- type
    |   `-- uevent
    |-- components
    |-- device -> ../../../devices/pci0000:01/0000:01:02.0/host0/port-0:1/expander-0:1/port-0:1:12/end_device-0:1:12/target0:0:3/0:0:3:0
    |-- power
    |   `-- wakeup
    |-- subsystem -> ../../enclosure
    `-- uevent


And without the deprecated setting:

sparkweed:/sys/class/enclosure# tree
.
|-- 0:0:1:0 -> ../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:12/end_device-0:0:12/target0:0:1/0:0:1:0/enclosure/0:0:1:0
`-- 0:0:3:0 -> ../../devices/pci0000:01/0000:01:02.0/host0/port-0:1/expander-0:1/port-0:1:12/end_device-0:1:12/target0:0:3/0:0:3:0/enclosure/0:0:3:0

sparkweed:/sys/class/enclosure/0:0:1:0# tree
.
|-- SLOT 006
|   |-- active
|   |-- device -> ../../../../../../../port-0:0:0/end_device-0:0:0/target0:0:0/0:0:0:0
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- SLOT 007
|   |-- active
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- SLOT 008
|   |-- active
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- SLOT 009
|   |-- active
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- SLOT 010
|   |-- active
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- SLOT 011
|   |-- active
|   |-- fault
|   |-- locate
|   |-- power
|   |   `-- wakeup
|   |-- status
|   |-- type
|   `-- uevent
|-- components
|-- device -> ../../../0:0:1:0
|-- power
|   `-- wakeup
|-- subsystem -> ../../../../../../../../../../../../class/enclosure
`-- uevent


So are we now all happy?

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux