anchor.diff:            disk[:wwn] = Regexp.last_match(1)
   
             devices[:disks] << disk
  +
  +          disks << disk
           end
         elsif disk && line =~ /^Firmware state:\s+(\S.*)$/
           status, state = Regexp.last_match(1).split(/,\s*/)
  
positive.code:         end
        elsif disk && line =~ /^(\S.*\S)\s*:\s+(\S.*)$/
          case Regexp.last_match(1)
          when "Device Id" then disk[:smart_device] = "megaraid,#{Regexp.last_match(2)}"
          when "PD Type" then disk[:interface] = Regexp.last_match(2)
          when "Raw Size" then disk[:size] = memory_to_disk_size(Regexp.last_match(2).sub(/\s*\[.*\]$/, ""))
          when "Inquiry Data" then disk[:vendor], disk[:model], disk[:serial_number] = Regexp.last_match(2).split
  
negative.code:     controllers.each do |controller|
        if device = Dir.glob("/sys/bus/pci/devices/#{controller[:pci_slot]}/host*/target*:2:0/*/scsi_generic/sg*").first
          controller[:device] = "/dev/#{File.basename(device)}"
        end
      end
  
      disks.each do |disk|
        controller = devices[:controllers][disk[:controller]]
        id = disk.delete(:device_id)
  
        if device = Dir.glob("/sys/bus/pci/devices/#{controller[:pci_slot]}/host*/target0:0:#{id}/0:0:#{id}:0/block/sd*").first
          disk[:device] = "/dev/#{File.basename(device)}"
        else
          disk[:smart_device] = "megaraid,#{id}"
        end
      end
    end
  