Mark the mounted GitHub workspace as a safe Git directory inside Ubuntu
package containers.
This keeps tracked source enumeration and version metadata available to
make dpkg.
Build Ubuntu 20.04 and 24.04 DEB artifacts in release-specific job
containers with explicit kernel headers.
Publish one bundle per Ubuntu LTS target and keep the README independent of
matrix versions.
Use normalized RPM matrix kernel versions in rolling snapshot archive
names. Keep vendor suffixes in package metadata and leave Ubuntu DKMS
independent of the runner kernel.
Run CI and package builds for pull requests and for pushes to master.
Avoid running both event types for each same-repository PR update.
Keep manual package workflow runs available.
Enable WERROR=y for CI and package builds so warnings in SCST code
are fatal.
Keep WERROR=n for regression and Coverity because these workflows
must tolerate failures outside strict SCST package gates.
Add a WERROR=y|n build setting that keeps the local default unchanged
and exports -Werror for user-space and kernel compilation. Honor the same
setting in direct regression kernel builds.
Publish a rolling prerelease after the complete master package
matrix succeeds. Validate and bundle every downloaded artifact before
replacing the previous master-rpm snapshot.
Build the six RPM targets resolved from ABT_KERNELS and portable
Ubuntu DKMS and user-space packages. Upload commit-specific GitHub Actions
artifacts for every target.
Expose verified RPM artifact production through a repository Make
target. Use Docker only as the Rocky Linux and Oracle Linux toolchain,
keep the source worktree read-only and support the selected UEK package
layouts.
Keep exact kernel versions only in ABT_KERNELS. Resolve the bounded GitHub
regression and RPM subsets from stable selectors, and reject missing or
ambiguous matches.
Merge adjacent literals that only wrapped log messages across source
lines and remove a duplicate blank line. Keep the segmented lockspace
dump command unchanged because its fragments document the pipeline.
The string values and control flow remain unchanged.
Merge adjacent literals used to wrap diagnostic format strings. Adjust
the affected call formatting and add braces around the exposed else arm
so the changed lines follow kernel style.
The string values and control flow remain unchanged.
Remove no-op return statements at the end of void functions. Keep the
labeled terminal return in tm_dbg_task_mgmt(), where it is required as
the target statement of goto out.
This patch does not change any functionality.
SCST uses macro fragments for sense tuples, initializer lists and other
contexts where enclosing the expansion in parentheses would change its
meaning. Treat COMPLEX_MACRO as a project-wide checkpatch exception.
Add a tracked runner that discovers Bash scripts under scripts/ and
checks them with external source resolution enabled. Expose it through
the top-level Makefile.
Run the same entry point from the patch lint workflow whenever a range
touches Bash lint inputs, and report its result explicitly.
Quote scalar arguments and use arrays for command option lists so paths
and options retain their boundaries. Preserve intentional version-field
splitting with narrow documented suppressions.
Also handle GNU getopt output without losing quoted arguments and
remove warnings about masked statuses, unused values and ambiguous test
expressions.
The tracked SVN tag ledger and checkout instructions predate the move to
Git and no longer describe a supported workflow.
Remove the obsolete material, point Debian metadata at GitHub and keep
the retired Gentoo guide generic about its old source location.
Mercurial branches remain in source-listing and cleanup helpers after
Subversion support was retired. SCST development now uses Git.
Remove Mercurial detection and commands together with stale Subversion
wording. Preserve the existing no-VCS source-list fallback and all Git
behavior.
Abort the dependent reservation sequence when an sg_persist command
fails instead of continuing to change device state. Quote the device
argument so it is passed to every command unchanged.
Propagate patch and module-list failures, normalize the script
directory, and expand the actual Mercurial subrepository name when
matching paths. Keep the existing no-optional-patches behavior
unchanged.
Keep explicitly listed files as separate array elements instead of
joining them into one invalid path. Use pipefail so an input-listing
error cannot be hidden by tar.
Write the specialized patch unchanged when diffstat is unavailable,
instead of creating an empty file. Propagate specialization,
output-directory, and generated-header failures to the caller.
Treat status 1 from diff as successful when generating QLogic in-tree
patches, while continuing to propagate actual diff failures.
Propagate patch, source-copy, and patch-generation failures instead
of continuing with incomplete regression inputs. Stop immediately
when the output directory cannot be created.
Also correct the documented options and keep Debian package output
in its intended log file.
Download kernel archives through a temporary file, validate XZ data,
and only publish complete files. Reject corrupt cached downloads and
propagate XZ pipeline failures during extraction and patching.
Wire the regression runner cache option to the kernel_downloads
variable used by the shared download helpers.
Fail the QLogic documentation check when tidy is unavailable or any
HTML file does not validate. Mark both HTML check targets as phony so
a file named check cannot silently suppress validation.
Keep user-provided maintainer identity values and only install the
defaults when these variables are empty. Generate debian/compat only
after dpkg-query succeeds so a failed query cannot leave an empty file.
Do not update the build_mode file while make is only expanding the
recipe, since that also happens for dry runs. Run the update as the
recipe itself so write failures are reported to the caller.
Return the failing submake status from the top-level and Debian build
loops instead of turning an early failure into success. Collect and
check the statuses of the parallel iSCSI and SRP cleanup jobs as well.
Remove the obsolete Piwik integration that loads a project page as
JavaScript and breaks every top-level page.
Replace unavailable company logos with stable text links, remove the
unused tooltip code, and update the stale zero-copy reference. Make the
website check fail when tidy is unavailable or reports an error.
Move the minimum kernel check into the shared backport header so all
kernel components reject Linux versions older than 3.10 and RHEL 6.
Simplify now-unreachable compatibility conditions and remove the unused
QLogic patch for Linux 2.6.26 and 2.6.27.
Reject unsupported kernel versions before download or patch generation.
Remove 2.x paths, RHEL 5/6 and Scientific Linux repositories, and
compatibility branches that cannot run with the Linux 3.10 minimum.
Keep the maintained ABT_KERNELS matrix unchanged.
GNU Awk 5.4 rejects unescaped repetition operators at the start of a
regular expression and C-style comments in the program text. Escape the
literal diff markers and use an Awk comment so patch specialization
works with current GNU Awk.
The generated SRPT documentation still contained commands for the removed
/proc/scsi_tgt interface. The comparison page advertised procfs as an SCST
option and Debian metadata named deleted procfs sources. Remove these stale
references while retaining scstadmin migration support.
Procfs support was removed in 2019, but dead configuration guards,
patch specialization logic and unused declarations remained. Remove these
remnants and simplify paths that can no longer receive procfs-only objects.
The website links to stale deployed manuals, generated pages and
a QLogic snapshot that is not in the repository. Several feature
summaries also describe code that has since changed or disappeared.
Commit 7aade0a109 ("Makefile: Make the qla2x00t-32gbit driver
the default QLogic FC driver") changed the default QLogic tree.
Commit 3a8d70b166 ("- Remove old scst_db stuff which no longer works
with even procfs.") removed database-backed scstadmin configuration.
Commit d84fc0783d ("vdisk_fileio: Add support for asynchronous I/O
processing") removed O_DIRECT as a fileio_tgt-only distinction.
Linux commit 066465251303 ("tgt: removal") removed scsi_tgt in 2014,
turning the website prediction into a completed historical event.
Commit 10ebf80e7a ("Docs update") merged the SGV cache text into
doc/scst_pg.sgml.
Link website entries to maintained repository sources, use the real
lowercase make rpm target, update the affected feature descriptions
and remove references to files that are not tracked.
The scst_local README omits exported attributes, claims dynamic sessions
cannot be saved and uses an invalid module path. Its walkthrough also
creates and exports a writable backing file on the same host without
a safety boundary.
Commit 84d335f131 ("scst_local: Make the SCSI host number available
in sysfs") added host_no. Commit 00caf4d5c9 ("scstadmin: Make
-write_config save the scst_local session name") added the missing
serialization.
Document host_no and version from scst_local.c and remove the obsolete
session warning. Use ./scst_local.ko, fix the malformed sysfs path and
explain that add_default_tgt=0 suppresses default objects. Require
an isolated host and disposable backing path while retaining the
recursion, mount and swap restrictions.
The FCST setup has stale step references and an invalid target enable
path. A reader following it reaches the wrong prerequisites and cannot
address enabled after entering the target directory.
Commit 87bde8ab0e ("fcst/README: Update this README file") shortened
the procedure without updating its cross-references. Commit 7a12737c9d
("Simplify README by eliminating example using of ini_groups.") changed
the LUN setup but left $LPORT duplicated in the following path.
Repair the references, terminology and relative enable command,
and clarify the LUN 0 compatibility note. The same procedure installs
packages, creates an FCoE interface, loads modules and exports storage,
so require authorization for the host, CNA, fabric, initiators and
backing devices before it is run.
The legacy and newer QLogic guides disagree about the default driver,
supported adapters, NPIV, sysfs layout and module lifecycle. The
HOWTO also carries SVN, kernel replacement, firmware flashing and
discovery commands that can disrupt active storage.
Commit 7aade0a109 ("Makefile: Make the qla2x00t-32gbit driver
the default QLogic FC driver") selected the newer tree by default.
Commit a788a4efd7 ("Newer version of QLogic target driver with 16G
(26xx/83xx) support") added that tree and disabled legacy NPIV target
callbacks. Commit 08e532715d ("Remove procfs support") removed the
old management path.
Use each qla2xxx_pci_tbl[] and qla_os.c for hardware and firmware facts.
Document QLA_32GBIT=no, current per-port sysfs state, reset effects
and the matched qla2xxx_scst and qla2x00tgt modules. Replace unsafe
generic recipes with repository or vendor sources and mark every HBA,
fabric, target and backing-device operation as live.
The SRPT guides mix current RDMA/CM code with Linux 2.6, procfs and
OFED 1.5 procedures. Their parameter defaults, session names and
tuning advice no longer describe the driver built by this tree.
Commit 020ec68ddc ("ib_srpt: Change default behavior from using SRQ
to not using SRQ") changed receive queues, and commit 434207ab53
("ib_srpt: Restore immediate data support") changed request sizing.
Commit fa58faf95b ("ib_srpt: Add RDMA/CM support") added the IP-based
session naming mode.
Commit 08e532715d ("Remove procfs support") invalidated the in-tree
setup, while commit d6fd03107f ("Split Makefiles: move kernel build
rules into Kbuild files") moved the fault-injection flag.
Commit c2bd2e8bf5 ("ib_srpt: Remove "thread" kernel module parameter and keep thread=1 behavior - the other two modes could cause soft lockup complaints")
made threaded completion unconditional.
Use ib_srpt.c, ib_srpt.h and conftests for current behavior. Scope
SCSI multiqueue advice after Linux commit f664a3cc17b7 ("scsi: kill
off the legacy IO path"), and mark OFED, HA, benchmark and test
recipes as historical or destructive.
The scstadmin manuals still describe the 2.0 parser, a database backend
and SysV-only service integration. They omit current ALUA operations
and call -check_config an offline check even though it reads live sysfs.
Commit 3a8d70b166 ("- Remove old scst_db stuff which no longer
works with even procfs.") removed the database implementation. The
current grammar and apply order live in scstadmin.sysfs/scstadmin,
while SCST/SCST.pm consumes the kernel-provided sysfs metadata.
Document the current commands, quoting, comments, DEVICE references
and systemd environment handling. Keep deprecated-format conversion,
but explain that it reconciles live state. Mark conversion, checking,
examples, installation and service operations with their root, sysfs
and exported-storage effects.
The iSER and distribution guides prescribe OFED 1.5 installation,
deleting packaged RDMA modules, patching kernel builds and applying
host-wide tuning. The Gentoo procedure targets SVN, while the bundled
OCF agents are neither built nor exercised by repository CI.
Commit 025574018e ("isert: Support building against MOFED without
patching the kernel build system") established the supported
header-selection model. Current Makefile conftests and isert-scst
sources define the remaining compatibility and transport limits.
Replace fixed OFED and tuning recipes with those sources and matching
vendor guidance. Reduce the Gentoo and resource-agent documents to
historical integration notes, and spell out their module, sysfs,
daemon, session and storage side effects before any reuse.
The iSCSI READMEs, HOWTO and man pages combine current code with procfs,
old daemon configuration and fixed runtime output. The result documents
invalid paths, the wrong object creation order and unsafe live commands.
Commit 08e532715d ("Remove procfs support") removed the main obsolete
interface. Commit 70eb596f60 ("Rework iSCSI aborts to make them more
correct and remove recent workarounds (one more post-IET cleanup)")
added the SCST abort callback requested by an old ToDo entry.
Use iscsi_scst.h, kernel/config.c and usr/config.c for the kernel and
daemon contract. Correct sysfs ownership, authentication limits, setup
ordering, logging and dynamic output, and remove the completed task.
Keep iscsi-scstd.conf and iscsi-scst-adm documented because current code
still consumes them, but direct new setups to scst.conf. Replace the
removed service command and warn before exposing storage, credentials,
portals or sessions.
The scst_user specification copies ioctl structures and command payloads
that predate several ABI extensions. Building a handler from those
layouts can select the wrong union member, alignment or completion path.
Commit 3fc775c75a ("EXTENDED COPY support") added remapping payloads.
Commit daee4dcb7e ("WRITE SAME command improvements") added WRITE
SAME descriptors. Commit d1bd22afd9 ("scst_user: avoid global locks")
left the explicit unregister ioctl as an obsolete no-op.
Use scst/include/scst_user.h and scst_user.c as the producer-side
source of truth. Synchronize registration, command, reply and subcommand
layouts, version checks, reserved fields and ioctl rules.
Update the fileio_tgt, stpgd and event guides from current code. Make
live-storage and event-consumption risks explicit.