191 Commits
Author SHA1 Message Date
Gleb Chesnokov e21ff58d46 scst: Remove empty statements after control-flow blocks
Coccinelle misc/semicolon.cocci reports:

  iscsi-scst/usr/iscsi_scstd.c:958:2-3: Unneeded semicolon
  iscsi-scst/usr/iscsid.c:367:4-5: Unneeded semicolon
  scst/src/scst_event.c:772:2-3: Unneeded semicolon
  usr/stpgd/stpgd_main.c:269:3-4: Unneeded semicolon

Remove the trailing semicolons after the iSCSI netlink-open check, login
parameter check, event-size read check and STPG child-cleanup loop. Each
semicolon is
an empty statement after a completed block, so removing it preserves
control flow and requires no analyzer exception.
2026-10-20 18:02:29 +03:00
Gleb Chesnokov 7d991169e0 scst: Remove identical userspace sync and trace branches
Coccinelle misc/cond_no_effect.cocci reports:

  usr/include/debug.c:121:1-3:
  WARNING: possible condition with no effect (if == else)

Buffer tracing prints the same final line whether or not a full row has
already been printed. Remove that conditional and its unused j state.

Also remove the identical immediate/non-immediate branches in fileio
cache synchronization. Both branches already call exec_fsync, so retain
that call and the TODO for future background execution. This second
cleanup was found while reviewing the same pattern; it is not a separate
finding in the current report.

The trace output and synchronous cache-flush behavior are unchanged.
2026-10-20 18:02:29 +03:00
Gleb Chesnokov 49b4d9f3ef scripts: Group release and packaging helpers under release/
Keep RPM artifact creation, archive generation, package release preparation
and version updates in one directory. Switch all component archive targets,
the top-level RPM target and the RPM workflow to the relocated helpers.

Point archive generation at the shared source inventory in source/ while
preserving its caller-directory semantics and the existing package inputs.
2026-10-19 10:31:32 +03:00
Gleb Chesnokov 45d3123fe4 build: Prepare device handlers for separate test objects
Make scst_vdisk and scst_user composite modules so KUnit can link
additional objects without including test sources. Rename the
implementation files while preserving the module names and update
source-path consumers.

Move existing private command and device layouts into local headers
without changing their fields, constants or logic. No installed
interface is expanded.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov e7ad7e093e scst_user: Document the current userspace ABI
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.
2026-08-21 10:05:36 +03:00
Gleb Chesnokov 38823eb5e2 docs: Add repository guidance for agents
SCST spans a kernel core, transport drivers, user-space programs and
configuration tools. Each area has different ABI, build, validation and
safety constraints, but the repository has no persistent guidance for
automated contributors.

Add a root AGENTS.md with cross-component contracts and nested files for
components with independent boundaries. Record authoritative sources,
generated files, compatibility policy and destructive workflows so
changes start from the correct context and avoid live storage state.
2026-08-21 10:05:36 +03:00
Gleb Chesnokov b2a1f6e66a Bump the version number to 3.11.0-pre
These changes have been generated by running the following command:

$ scripts/update-version 3 11 0 -pre
2025-12-29 13:06:44 +03:00
Gleb Chesnokov d4cb03e2b8 Bump the version number to 3.10.0
These changes have been generated by running the following command:

$ scripts/update-version 3 10 0
2025-12-29 12:40:21 +03:00
Gleb Chesnokov 163eb9dcc1 scst: Port to Linux kernel v6.15
Support for the following scsi layer changes in the Linux kernel v6.15:

- 0ea163a18b17 ("scsi: usb: Rename the RESERVE and RELEASE constants")
2025-05-14 18:36:46 +03:00
Gleb Chesnokov 191a74d127 scst: Fix recently introduced Coverity warnings
Add error handling for recently introduced SHA256 and SHA3-256 APIs.
2025-03-25 16:09:35 +03:00
Gleb Chesnokov 2bdc19a61f Bump the version number to 3.10.0-pre
These changes have been generated by running the following command:

$ scripts/update-version 3 10 0 -pre
2024-12-28 17:14:54 +03:00
Gleb Chesnokov a68cb8e94d Bump the version number to 3.9.0
These changes have been generated by running the following command:

$ scripts/update-version 3 9 0
2024-12-28 16:44:09 +03:00
Gleb Chesnokov 188256792c Bump the version number to 3.9.0-pre
These changes have been generated by running the following command:

$ scripts/update-version 3 9 0 -pre
2024-01-15 15:33:45 +03:00
Gleb Chesnokov 1171841931 Bump the version number to 3.8.0
These changes have been generated by running the following command:

$ scripts/update-version 3 8 0
2024-01-15 13:59:19 +03:00
Gleb Chesnokov b6d1f19437 usr/fileio/common.c: Fix warning for older versions of GCC
Building SCST with an old version of GCC (e.g. 4.8.5 on Centos 7.X)
produces a warning about using initializer.

This is GCC bug # 53119:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119

Hence, use memset() instead of an initializer to avoid this warning.

Fixes: e8b300ef2a ("usr/fileio/common.c: Fix use of uninitialized
struct field")
2023-03-12 21:42:52 +03:00
Gleb Chesnokov b78582f34d Bump the version number to 3.8.0-pre
These changes have been generated by running the following command:

$ scripts/update-version 3 8 0 -pre
2022-12-28 17:08:44 +03:00
Gleb Chesnokov 1ef10b852d Bump the version number to 3.7.0
These changes have been generated by running the following command:

$ scripts/update-version 3 7 0
2022-12-27 16:47:20 +03:00
Gleb Chesnokov e8b300ef2a usr/fileio/common.c: Fix use of uninitialized struct field
This patch fixes the following Coverity complaint:

    CID 275308 (#1-2 of 2): Uninitialized scalar variable (UNINIT)
    uninit_use_in_call: Using uninitialized value
    multi.multi_cmd.replies_done when calling fprintf.
2022-12-19 12:10:04 +03:00
Chesnokov Gleb 64a8485fe7 Bump the version number to 3.7.0-pre
These changes have been generated by running the following command:

$ scripts/update-version 3 7 0-pre
2022-01-11 16:37:34 +03:00
Bart Van Assche 9c5406664a Bump the version number to 3.6.0
These changes have been generated by running the following command:

$ scripts/update-version 3 6 0
2021-12-29 19:19:14 -08:00
Bart Van Assche c0151f6cda Bump the version number to 3.6.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9310 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2021-01-02 23:16:59 +00:00
Bart Van Assche d3c92ea7aa Bump the version number to 3.5.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9231 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-12-22 03:38:21 +00:00
Vladislav Bolkhovitin dc1e3d786a Problem statement: Applications that are capable of running as Fibre
Transport Target mode server need to able to function when running in
containerized form factor in a secure and multi-tenant platform.

Solution: Such applications when containerized can run in any container
based platform such as Kubernetes/OpenShift or a custom one. These
applications are generic in nature and all they need is access  to SCST
user storage device driver (/dev/scst_user). The security policy of the
platform may not allow these applications to manage Fibre Channel (FC)
port and /sys file-system. The platform, however, can manage the FC ports
on behalf of these applications. The containerized applications can
remain generic in nature and run on any containerized platforms. The
sequence of operations would be 1. The platform converts the desired FC
ports to target mode prior to starting the containerized application 2.
The application does device registration using exported the SCST user
storage device driver 3. The platform, at this point, asynchronously adds
FC port LUNs to the user device registered by the application. As the
application inside the container can auto or manual restart
asynchronously, the platform would add the LUNs every time the
application does device registration.
 
Patch description: The SCST event mechanism is leveraged to achieve the
asynchronous LUN additions when application does device registration. The
current set of SCST events is extended to send a new event whenever there
is a virtual user device registration happens. The platform can watch for
the specific event and make business logic decisions to allow target mode
applications function securely. By extending the set of event, the SCST
module will be friendly to containerized applications and platforms.

Signed-off-by: Vikas Goel <vikas.goel@veritas.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9210 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-12-08 17:06:40 +00:00
Bart Van Assche 31dbbf3274 usr/fileio: Suppress a Coverity complaint about 'page_size'
Suppress the following Coverity complaint:

    CID 361202:  Error handling issues  (NEGATIVE_RETURNS)
    "page_size" is passed to a parameter that cannot be negative.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9116 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-08-09 00:41:14 +00:00
Bart Van Assche 6f49179491 Makefiles: Use -Wextra instead of -W
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9040 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-07-05 02:14:28 +00:00
Bart Van Assche c647d76ef2 Fix compiler warnings triggered by building against the musl C library
See also https://github.com/bvanassche/scst/issues/23.

Reported-by: Lucian Cristian lucian.cristian@gmail.com


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9001 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-06-01 04:52:50 +00:00
Bart Van Assche 6c785d14b9 usr/fileio/fileio: Fix align_alloc()
User space code must not use PAGE_SIZE but must use sysconf(_SC_PAGESIZE)
instead to obtain the page size.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8997 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-06-01 02:09:31 +00:00
Bart Van Assche fda71c077d Include <poll.h> instead of <sys/poll.h>
According to the Single Unix Specification, the poll() function has been
declared in the <poll.h> header file. This makes the SCST code compatible
with the musl C library. See also https://en.wikipedia.org/wiki/Musl. See
also https://github.com/bvanassche/scst/issues/23.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8992 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-31 03:41:17 +00:00
Bart Van Assche ecaab978f0 scst, scstadmin, ...: Bump the version number to 3.5.0-pre
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8683 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-06 05:28:56 +00:00
Bart Van Assche fa156aa40d scripts/update-version: Fix the code for updating the scstadmin version number
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8681 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-04 05:00:49 +00:00
Bart Van Assche ce557f2f1c scst, fcst, iscsi-scst, srpt, ...: Bump version number to 3.4.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8674 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-03 04:22:16 +00:00
Bart Van Assche 8ae4d56ad7 usr/fileio/common.c: Annotate a switch/case fall-through
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8360 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-09 16:48:18 +00:00
Bart Van Assche 370e25813e usr/fileio: Make the coding style more consistent
This patch only changes whitespace.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8355 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-09 16:25:29 +00:00
Bart Van Assche 22f1132073 Makefiles: Rework build mode switching
Move the build_mode file from the top level into the scst directory. Write
build mode defines into scst/include/build_mode.h and include that file
directly or indirectly in all source files that depend on these #defines.
This approach has the advantage that "make clean" does no longer has to
be run when switching between build modes because the kernel build system
recognizes build_mode.h as a dependency and triggers a rebuild of all
source files that directly or indirectly include the build_mode.h header
file.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8347 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-05-05 18:19:38 +00:00
Bart Van Assche 9b37ec66b4 usr/fileio/common.c: Fix a compiler warning
Avoid that the compiler complains that the assert() expression compares a
signed with an unsigned integer.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8269 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-21 19:13:35 +00:00
Bart Van Assche 07e936a256 usr/fileio/common.c: Suppress a compiler warning
Avoid that gcc 8 complains about the strncpy() call.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8257 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-20 15:53:53 +00:00
Bart Van Assche 3002ba7652 usr/stpgd: Fix the perf build
Reported-by: Rob Turk <robtu@rtist.nl>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8256 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-20 15:53:06 +00:00
Bart Van Assche 623d4e6d0a Makefiles: Use build_mode instead of modifying the Makefile when switching the build mode
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8074 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-25 19:53:39 +00:00
Bart Van Assche 81c9a1f49d make uninstall: Do not remove /usr/local/sbin
Reported-by: Heiner Lesaar <heiner.lesaar@googlemail.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7998 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-01 04:15:01 +00:00
Bart Van Assche 3dcace8794 Remove trailing whitespace from multiple files
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7844 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-12-31 18:26:51 +00:00
Bart Van Assche 1587638134 Remove support for "make enable_proc" and "make disable_proc"
Since RHEL 5 and kernel versions before 2.6.26 rely on procfs support,
this patch removes support for RHEL 5.x and also for kernel versions
before 2.6.26.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7829 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-22 22:13:40 +00:00
Bart Van Assche 69fde133e9 Revert r7524
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7525 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-10-31 14:25:52 +00:00
Bart Van Assche 91b99af914 scst, srpt, iscsi-scst, qla2x00t, fcst: Bump version number to 3.4.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7524 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-10-31 14:24:20 +00:00
Bart Van Assche e1b418938e usr/stpgd: Fix make install failure for relative DESTDIR
When DESTDIR is a relative path, make install fails to install
`scst_on_stpg` for not having created `$(DESTDIR)$(PREFIX)/bin/scst`.

When DESTDIR is an absolute path, make install doesn't fail to install
`scst_on_stpg` because usr/fileio has already created the directory.

usr/stpgd should explicitly create `$(DESTDIR)$(PREFIX)/bin/scst`
so that it can handle a relative DESTDIR, plus be independent of
usr/fileio installation.

--
 # cd usr
 # make install DESTDIR=./aaa
 cd fileio && make install
 make[1]: Entering directory '/tmp/scst/usr/fileio'
 install -d ./aaa/usr/local/bin/scst
 install -m 755 fileio_tgt ./aaa/usr/local/bin/scst
 make[1]: Leaving directory '/tmp/scst/usr/fileio'
 cd stpgd && make install
 make[1]: Entering directory '/tmp/scst/usr/stpgd'
 install -d ./aaa/usr/local/sbin
 install -m 700 stpgd ./aaa/usr/local/sbin
 install -m 700 scst_on_stpg ./aaa/usr/local/bin/scst/scst_on_stpg
 install: cannot create regular file './aaa/usr/local/bin/scst/scst_on_stpg': No such file or directory
 Makefile:60: recipe for target 'install' failed
 make[1]: *** [install] Error 1
 make[1]: Leaving directory '/tmp/scst/usr/stpgd'
 Makefile:32: recipe for target 'install' failed
 make: *** [install] Error 2

Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7403 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-06-04 16:23:45 +00:00
Vladislav Bolkhovitin f549829482 Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7396 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-04-12 03:49:10 +00:00
Vladislav Bolkhovitin d0c448116a Change version to 3.4
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7230 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-09-01 04:04:00 +00:00
Bart Van Assche 9e35afe1e0 Annotate fall-through in switch statements in a form recognized by gcc 7
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-08-27 15:28:57 +00:00
Vladislav Bolkhovitin a614104023 usr: fix -Wmissing-prototypes warnings
Fix all twelve [-Wmissing-prototypes] warnings by adding "static" to their
declarations.

Signed-off-by: David Butterfield <dab21774@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7202 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-06-01 04:08:02 +00:00
Vladislav Bolkhovitin 68fa7e1a0d Copyright updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7146 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-04-22 03:19:52 +00:00
Vladislav Bolkhovitin dd026f8511 fileio_tgt: change "#if DEBUG_TM_FN_IGNORE" to "#ifdef ..."
Signed-off-by: David Butterfield <dab21774@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7137 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-04-19 03:44:20 +00:00