1. 03 Mar, 2010 1 commit
    • James Bottomley's avatar
      [SCSI] raid_attrs: fix dependency problems · fac829fd
      James Bottomley authored
      
      
      RAID attributes uses scsi_is_sdev_device() to gate some SCSI specific
      checking code.  This causes two problems.  Firstly if SCSI == n just
      defining scsi_is_sdev_device() to return false might not be enough to
      prevent gcc from emitting the code (and thus referring to undefined
      symbols), so this needs surrounding with an ifdef.  Secondly, using
      scsi_is_sdev_device() when SCSI is either y or m gives a subtle
      problem in the m case: raid_attrs must also be m to use the symbol.
      Do the usual Kconfig jiggery-pokery to fix this.
      Reported-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      fac829fd
  2. 17 Feb, 2010 1 commit
  3. 02 Jan, 2009 1 commit
  4. 20 Apr, 2008 1 commit
  5. 07 Apr, 2008 1 commit
    • James Bottomley's avatar
      [SCSI] transport_class: BUG if we can't release the attribute container · 2f3edc69
      James Bottomley authored
      
      
      Every current transport class calls transport_container_release but
      ignores the return value.  This is catastrophic if it returns an error
      because the containers are part of a global list and the next action of
      almost every transport class is to free the memory used by the
      container.
      
      Fix this by making transport_container_release a void, but making it BUG
      if attribute_container_release returns an error ... this catches the
      root cause of a system panic much earlier.  If we don't do this, we get
      an eventual BUG when the attribute container list notices the corruption
      caused by the freed memory it's still referencing.
      
      Also made attribute_container_release __must_check as a reminder.
      
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      2f3edc69
  6. 04 Oct, 2006 1 commit
  7. 10 Jun, 2006 1 commit
  8. 12 Jan, 2006 1 commit
  9. 14 Dec, 2005 1 commit
  10. 07 Nov, 2005 1 commit
  11. 06 Nov, 2005 1 commit
  12. 31 Aug, 2005 1 commit
    • James Bottomley's avatar
      [SCSI] embryonic RAID class · 61a7afa2
      James Bottomley authored
      
      
      The idea behind a RAID class is to provide a uniform interface to all
      RAID subsystems (both hardware and software) in the kernel.
      
      To do that, I've made this class a transport class that's entirely
      subsystem independent (although the matching routines have to match per
      subsystem, as you'll see looking at the code).  I put it in the scsi
      subdirectory purely because I needed somewhere to play with it, but it's
      not a scsi specific module.
      
      I used a fusion raid card as the test bed for this; with that kind of
      card, this is the type of class output you get:
      
      jejb@titanic> ls -l /sys/class/raid_devices/20\:0\:0\:0/
      total 0
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 component-0 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:0/20:1:0:0/
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 component-1 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:1/20:1:1:0/
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 device -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:0:0/20:0:0:0/
      -r--r--r--  1 root root 16384 Aug 16 17:21 level
      -r--r--r--  1 root root 16384 Aug 16 17:21 resync
      -r--r--r--  1 root root 16384 Aug 16 17:21 state
      
      So it's really simple: for a SCSI device representing a hardware raid,
      it shows the raid level, the array state, the resync % complete (if the
      state is resyncing) and the underlying components of the RAID (these are
      exposed in fusion on the virtual channel 1).
      
      As you can see, this type of information can be exported by almost
      anything, including software raid.
      
      The more difficult trick, of course, is going to be getting it to
      perform configuration type actions with writable attributes.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      61a7afa2