On Fri, Oct 16, 2015 at 11:00:19AM +0200, Arvin Schnell wrote: > On Thu, Oct 15, 2015 at 06:17:06PM +0200, Arvin Schnell wrote: > > On Thu, Oct 15, 2015 at 05:30:15PM +0200, Martin Vidner wrote: > > > > What is a Holder? It seems to be characterized by having a source > > > sid and a target sid, which still does not give me a hint. > > > Its subclasses Subdevice and User are even more opaque to me. > > > > Technical it's the edge in the graph, so it expresses what device > > is linked what device. The name I have borrowed from sysfs (but > > it's not the same as in sysfs), e.g. on my system I have > > (simplified) > > > > # ll /sys/block/sda/sda2/holders/ > > lrwxrwxrwx 1 root root 0 Oct 15 17:17 dm-0 -> > > ../../../../../../../../../../virtual/block/dm-0 > > lrwxrwxrwx 1 root root 0 Oct 15 17:17 dm-1 -> > > ../../../../../../../../../../virtual/block/dm-1
Ah, interesting. As an illustration, this is what I get on 2 different machines with LANG=C ls -l `find /sys/block/*/ -type l` | egrep holders\|slaves | cut -d' ' -f9- prutrz: /sys/block/dm-0/slaves/sda3 -> ../../../../pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda3 /sys/block/dm-1/holders/dm-2 -> ../../dm-2 /sys/block/dm-1/holders/dm-3 -> ../../dm-3 /sys/block/dm-1/holders/dm-4 -> ../../dm-4 /sys/block/dm-1/holders/dm-5 -> ../../dm-5 /sys/block/dm-1/holders/dm-6 -> ../../dm-6 /sys/block/dm-1/slaves/sda3 -> ../../../../pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda3 /sys/block/dm-2/slaves/dm-1 -> ../../dm-1 /sys/block/dm-3/slaves/dm-1 -> ../../dm-1 /sys/block/dm-4/slaves/dm-1 -> ../../dm-1 /sys/block/dm-5/holders/dm-7 -> ../../dm-7 /sys/block/dm-5/slaves/dm-1 -> ../../dm-1 /sys/block/dm-6/slaves/dm-1 -> ../../dm-1 /sys/block/dm-7/slaves/dm-5 -> ../../dm-5 /sys/block/sda/sda3/holders/dm-0 -> ../../../../../../../../../../virtual/block/dm-0 /sys/block/sda/sda3/holders/dm-1 -> ../../../../../../../../../../virtual/block/dm-1 mrakoplas: /sys/block/dm-0/slaves/loop0 -> ../../loop0 /sys/block/dm-0/slaves/loop1 -> ../../loop1 /sys/block/loop0/holders/dm-0 -> ../../dm-0 /sys/block/loop1/holders/dm-0 -> ../../dm-0 > > In the graph there are different holders. > > > > - Subdevice: E.g. a partition is the subdevice of a Disk and a > > logical volume is the subdevice of a volume group. > > > > - User: E.g. a partition is used by a volume group (the case on > > my system), a disk is used by a RAID, a logical volume is used > > by a filesystem. > > > > So far the distinction is not really important so it could > > change. > > The idea is of course to have more Holder classes that even have > data. E.g. a RaidUser which has a "spare device" flag or a > FilesystemUser which has a "journal/log device" flag. > > By keeping that data in the holders you don't need special care > when manipulating the graph, e.g. removing a device or copying > the graph. > > With extra lists in the Raid or Filesystem object such special > care would be needed. Thanks for the explanation. I didn't mean to object to the existence of these classes. Association classes are fine. I'm trying to find a fitting and accurate name and description for them. So is there a 1-1 correspondence between a Holder and an edge in the DeviceGraph? Then I think a little more explanatory name would be Dependency, with a description "an edge in the DeviceGraph" The subclasses make more sense to me if they are phrased as verbs: User -> Uses Subdevice -> Contains -- Martin Vidner, YaST Team http://en.opensuse.org/User:Mvidner Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
signature.asc
Description: Digital signature
