diff --git a/audit/internal/collector/storage.go b/audit/internal/collector/storage.go index aec8d54..f89bc2c 100644 --- a/audit/internal/collector/storage.go +++ b/audit/internal/collector/storage.go @@ -36,6 +36,13 @@ func bestEffortRescanHotplugStorage() { slog.Info("storage: scsi host scan skipped", "pattern", scsiHostScanGlob, "err", err) } else { for _, path := range hostPaths { + // SAS HBAs (e.g. smartpqi) block indefinitely in sas_user_scan when + // written to — SAS topology is discovered by the driver itself. + host := filepath.Base(filepath.Dir(path)) + if _, err := os.Stat("/sys/class/sas_host/" + host); err == nil { + slog.Info("storage: scsi host scan skipped (SAS host)", "path", path) + continue + } if err := hotplugWriteFile(path, []byte("- - -\n"), 0644); err != nil { slog.Info("storage: scsi host scan write failed", "path", path, "err", err) continue