Commit Graph

37 Commits

Author SHA1 Message Date
Vladislav Bolkhovitin
bc96b052d5 The patch below adds support for the 2.6.29 kernel and also fixes the
checkpatch issues reported by the checkpatch script included with the 2.6.29
kernel and that were not yet reported by the 2.6.28 checkpatch script
(trailing statements should be on the next line / struct should normally be
const).
The patch below has been tested as follows:
- Reran scripts/run-regression-tests -k 2.6.24.7 -k 2.6.25.20 -k 2.6.26.8 -k 2.6.27.21 -k 2.6.28.9 -k 2.6.29 and verified the output.
- Rebuilt, installed and loaded scst, iscsi-scst and srpt as follows:
make -s clean && make -s -C scst install && make -s -C iscsi-scst install && make -s -C srpt install && cd scstadmin && make -s && make -s install && modprobe scst_vdisk && modprobe iscsi-scst && dmesg

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>

with minor cleanups and corrections in put_page_callback-2.6.29.patch



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@717 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-25 12:55:27 +00:00
Vladislav Bolkhovitin
159ef466dc - Support for SCSI AENs added
- Now sense data are sent without additional memory allocation and copy

 - Sending and receiving padding bytes reimplemented

 - Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@699 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-17 18:05:19 +00:00
Vladislav Bolkhovitin
f9b9d824c6 Session and connection reinstation fixes for cases when they are shutting down and request for reinstation comes.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@692 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-06 19:04:48 +00:00
Vladislav Bolkhovitin
bc7c69bfc4 - Fixed a major IET-derived iSCSI RFC violation: sessions and connections were not working
- A lot of cleanups and minor fixes, mostly IET-derived



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@685 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 18:13:23 +00:00
Vladislav Bolkhovitin
b240091109 Final merge with IET (r201-204):
- 2.6.25 introduced netlink_socket_release(), to be used to clean up netlink sockets correctly (taking care of namespaces).

 - New more scalable proc seq_file implementation

+ minor signess cleanups

+ version updated



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@654 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 17:47:31 +00:00
Vladislav Bolkhovitin
ba698dbdd5 - Fix for iSCSI RFC violation: TARGET COLD RESET must close all connections/sessions, not only the current one
- Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@648 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-29 18:25:45 +00:00
Vladislav Bolkhovitin
41c3515516 - Memory barriers cleanup. Comments for them improved
- Small docs update
 - srpt/README_in-tree added



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@614 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-10 10:55:01 +00:00
Vladislav Bolkhovitin
cba6490e82 Until now I had been using the latest git version of sparse (August 26, 2008).
Apparently not all messages reported by this version are correct. So I switched
back to the last released sparse version (0.4.1). The patch below fixes all
errors and warnings reported by sparse 0.4.1 on the SCST source code.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@596 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-04 18:00:51 +00:00
Vladislav Bolkhovitin
e7e7c386f9 Cleanups after "make namespacecheck"
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@593 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-03 11:59:41 +00:00
Vladislav Bolkhovitin
9013ab1315 Signed/unsigned cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@586 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-28 16:11:51 +00:00
Vladislav Bolkhovitin
ea7e57886e The patch below fixes the sparse warnings on passing a __user pointer where a
kernel pointer is expected and vice versa. Additionally, there are a few fixes
for checkpatch warnings on trailing whitespace and lines that were over 80
columns.

This patch has been verified by reviewing it carefully and by verifying the
output files of the command scripts/run-regression-tests -k 2.6.27.6.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@579 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-21 10:15:03 +00:00
Vladislav Bolkhovitin
b0c6d9a561 The patch below fixes many checkpatch warnings triggered by the iSCSI kernel
code, mainly about lines that exceeded 80 columns. As you can see in the patch
below most lines that were too long have been split, but some code has also
been moved into helper functions in order to keep the code readable. No
functionality has been changed.

This patch has been verified as follows:
- Reread the patch carefully.
- Verified that the iSCSI target kernel module still loads.
- Verified the output generated by scripts/run-regression-tests -k 2.6.27.5.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>

with some modifications



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@569 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-12 18:49:18 +00:00
Vladislav Bolkhovitin
7b02f74ee0 The patch below fixes the following classes of checkpatch errors:
* ERROR: return is not a function, parentheses are not required
* ERROR: that open brace { should be on the previous line

This patch has been tested by verifying that the newly generated patch still
applies without warnings to the 2.6.25.17 kernel and that the patched kernel
still compiles.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@512 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-06 17:18:04 +00:00
Vladislav Bolkhovitin
73e27412fb - Update for 2.6.26
- Zero-copy feature, introduced by put_page_callback patch, made kernel compile time configurable via CONFIG_TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION option. If you upgrade from earlier versions, see the corresponding "[CAUTION]" e-mail in scst-devel mailing list about possible compatibility problems.
 - SRP target temporary removed from "all" and "install" the main Makefile targets, since it isn't compiled on 2.6.26
 - Minor fixes and cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@475 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-07-24 09:22:55 +00:00
Vladislav Bolkhovitin
cc28ddcdf2 Apparently the SCST code with debugging and/or tracing enabled compiles fine as
an external module. When applying the SCST kernel patch to the mainstream 
kernel tree with debugging and/or tracing enabled however, the resulting code
triggers a compiler error. This is because the symbols DEBUG and TRACING
conflict with symbols with the same named defined in unrelated kernel headers.
The patch below resolves these conflicts by renaming the following preprocessor 
symbols:
- DEBUG into CONFIG_SCST_DEBUG.
- DEBUG_DIGEST_FAILURES into CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES.
- DEBUG_OOM into CONFIG_SCST_DEBUG_OOM.
- DEBUG_RETRY into CONFIG_SCST_DEBUG_RETRY.
- DEBUG_SN into CONFIG_SCST_DEBUG_SN.
- DEBUG_TM into CONFIG_SCST_DEBUG_TM.
- EXTRACHECKS into CONFIG_SCST_EXTRACHECKS.
- SCST_HIGHMEM into CONFIG_SCST_HIGHMEM.
- STRICT_SERIALIZING into CONFIG_SCST_STRICT_SERIALIZING.
- TM_DBG_GO_OFFLINE into CONFIG_SCST_TM_DBG_GO_OFFLINE. Mapped 0/1 values
  into macro undefined / macro defined.
- TRACING into CONFIG_SCST_TRACING.
- USE_EXPECTED_VALUES into CONFIG_SCST_USE_EXPECTED_VALUES.
- In qla_isp/linux/isp_scst.c, renamed DEBUG into DEBUG_ISP_SCST.
- In qla_isp/..., renamed SCSI_TARGET in SCST_SCSI_TARGET.
- In qla_isp/..., renamed SCSI_TARGET_DEV in SCST_SCSI_TARGET_DEV.
Additionally, all CONFIG_SCSI_TARGET* macro's are renamed into CONFIG_SCST* in
order to avoid confusion between the STGT CONFIG-symbols and the SCST CONFIG-
symbols.

The following additional options are now configurable through Kconfig:
- CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES
- CONFIG_SCST_STRICT_SERIALIZING
- CONFIG_SCST_STRICT_SECURITY
- CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ
- CONFIG_SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING
- CONFIG_SCST_USE_EXPECTED_VALUES
- CONFIG_SCST_DEBUG_OOM
- CONFIG_SCST_DEBUG_RETRY
- CONFIG_SCST_DEBUG_SN
- CONFIG_SCST_DEBUG_TM
- CONFIG_SCST_TM_DBG_GO_OFFLINE

The patch below has been verified as follows:
- Verified that the following command does not print any new warning messages:
  make -s clean && make -C srpt -s clean && make -s scst iscsi-scst && make -C srpt -s
- Verified as follows that the internal SCST patches still apply cleanly:
  for p in *patch; do patch -p0 --dry-run -f -s <$p; done
- Checked that the patch generated by generate-kernel-patch still applies
  cleanly to the 2.6.25.7 kernel, and that the patched kernel tree still
  compiles, installs and boots fine, that the iscsi-scst, ib_srpt,
  scst_disk and scst_vdisk modules still load, and that iSCSI communication
  still works fine. All SCST kernel configuration options that could be
  enabled have been enabled during this test.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@453 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-07-10 10:49:06 +00:00
Vladislav Bolkhovitin
da47dc7a6c - ISCSI sending response timeout increased to 30 seconds
- Fixed 2 problems in scst_user on release() cleanup
 - Added per-device memory limit and new scst.ko module parameter scst_max_dev_cmd_mem
 - Cleanups, including important ones
 - Version changed to 1.0.0-rc1


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@411 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-06-12 18:55:13 +00:00
Vladislav Bolkhovitin
20a2e4ae8d Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@408 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-06-12 11:39:28 +00:00
Vladislav Bolkhovitin
994b72d114 The major TM processing cleanup in scst_user module which was possible after the recent SCST changes, to fix current problems. Also there are fixes for found during development/testing problems. Particularly:
- PRIO queue was removed from scst_user. Instead, all priority commands now queued in the head of the regular queue. The corresponding code was removed from fileio_tgt as well. It necessary, in the future the priority queue can be easily restored from this patch.

 - pre_unreg_sess() was removed from struct scst_dev_type. The corresponding code was removed from SCST core as well

 - Almost all /proc/scsi_tgt commands now can fail after timeout (90 seconds) with EBUSY

 - Fixed possible incorrect command's retry if double RESET UA is detected.

 - Many minor changes and cleanups

Also docs were updated.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@403 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-31 12:05:02 +00:00
Vladislav Bolkhovitin
1213800b2f Patch from Bart Van Assche <bart.vanassche@gmail.com>, except few chuncks from qla2x00t/ obviously not related to the target mode addon:
One of the Linux kernel patch submission requirements is that source files do
not contain trailing whitespace. The patch below removes trailing whitespace
from .c and .h source files.

Note: it might be more convenient to run the script I used to generate this
patch than to review and apply the patch below. This is how I generated and
verified the patch below:

cat <<EOF >./strip-trailing-whitespace
#!/bin/bash
trap "rm -f $t" EXIT
t=/tmp/temporary-file.$$
for f in "$@"
do
  sed 's/[	 ]*$//' <"$f" >"$t" && mv "$t" "$f"
done
EOF
chmod a+x ./strip-trailing-whitespace
find -name '*.[ch]' | xargs ./strip-trailing-whitespace
svn diff -x -w

Signed-off-by: <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@377 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-19 10:21:41 +00:00
Vladislav Bolkhovitin
cc685733a5 Interface versioning between iSCSI-SCST kernel and user space parts, iscsi_u.h renamed to iscsi_scst.h. Property svn:ignore adjusted accordingly. Docs updated.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@371 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-14 17:20:20 +00:00
Vladislav Bolkhovitin
2bff6d9765 - Rejecting command reimplemented in a more simple, straightforward and readable way.
- Minor external interface change: now target drivers should set for aborted commands SCST_CMD_DELIVERY_ABORTED status via scst_set_delivery_status(). In-tree drivers updated.
 - Fixed broken compilation if put_page_callback patch not applied to the kernel. Reported by Erez Zilber <erezz@Voltaire.COM>
 - Fixed several minor problems reported by David Berton <davidbrt@yahoo.com>
 - Fixed __exit misuse, when such functions called from __init functions.
 - Docs updated.
 - Other minor changes and cleanups.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@364 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-07 18:44:15 +00:00
Vladislav Bolkhovitin
fa84d540ef scsi_tgt.h renamed to scst.h
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@337 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-04-17 17:35:37 +00:00
Vladislav Bolkhovitin
b95fae3220 - Fixes scst_user brokennesses in various modes, especially in iSCSI-SCST
- Minor debug logging fixes
 - Minor cleanups


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@336 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-04-17 15:25:39 +00:00
Vladislav Bolkhovitin
7fcabadf56 - Fixed race on TM leading to crashes
- Connection close improved to be less agressive and honor TCP TIME_WATE state
 - Docs updates


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@301 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-03-11 19:09:30 +00:00
Vladislav Bolkhovitin
ba3062fe6b - TM fixes
- Optimizations and send timeout introduced in r295 temporary disabled
 - Big connection shutdown times improvements. Great thanks to Alexey Kuznetsov for suggestions!
 - RESERVE/RELEASE serialization now made with TST field 0 (i.e. single task set)
 - Other minor fixes and improvements


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@297 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-02-29 18:25:56 +00:00
Vladislav Bolkhovitin
f17ee9c61b - Fixes for previous commit
- Minor logging improvements


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@296 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-02-26 18:22:45 +00:00
Vladislav Bolkhovitin
9a48ab9d18 A bunch of pending changes:
- Response data send timeout implemented: now if initiator doesn't accept data for too long (7 sec), target closes connection
 - Connction closing improved: now session cleared without need to wait for all outstanding commands data fully transmitted
 - On session unregistration now all outstanding commands are implicitely aborted
 - TM processing in SCST core made independant from other TM commands (before they were serialized)
 - Few bug fixes
 - Other minor improvements and cleanups
 - Docs update


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@295 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-02-25 18:48:02 +00:00
Vladislav Bolkhovitin
eec2a571dd - Fixed minor problem in iSCSI-SCST
- Important reference counting and barriers usage cleanups
 - Sense buffer made dynamic
 - Other minor improvements and cleanups
 - Docs updates


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@287 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-02-13 17:15:47 +00:00
Vladislav Bolkhovitin
9847aa17ba - A bunch of minor, mostly stability related, fixes.
- Docs update


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@248 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-01-24 10:56:35 +00:00
Vladislav Bolkhovitin
1964293ff1 - Important iSCSI stability on connection close fixes.
- Latency measurements improvements
 - Minor improvements and logging changes


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@246 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-01-18 19:13:04 +00:00
Vladislav Bolkhovitin
e819486311 - Fixed huge iSCSI RFC violation, inherited from IET: incorrect commands ordering.
- TM fixes related to new commands serialization
 - Other TM improvements
 - Minor changes: likely/unlikely and priority of mgmt threads

Work not fully completed, still there are some rare issues.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@240 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-12-29 17:04:13 +00:00
Vladislav Bolkhovitin
a59b9a0849 - Update to the latest IET r145
- TM fixes and improvements, particularly, TARGET RESET now resets only visible to the initiator devices
 - Logs improvements


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@237 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-12-21 19:10:40 +00:00
Vladislav Bolkhovitin
1e18aabf3a - Implement SN based iSCSI IO flow control
- ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING compilation symbol added
 - TM fixes and cleanups
 - Fixes crash on modprobe with some real devices


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@233 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-12-13 18:28:34 +00:00
Vladislav Bolkhovitin
3d7c4fe1be - Fixed closing connection related race
- Minor cleanups 


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@202 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-09-28 13:58:27 +00:00
Vladislav Bolkhovitin
ef588acdf3 - Fixed several iSCSI RFC violations in TM area, added necessary support in the SCST core
- Some minor TM handling improvements
 - Some cleanups


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@173 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-08-28 17:32:31 +00:00
Vladislav Bolkhovitin
d224057476 Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@166 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-08-23 15:28:18 +00:00
Vladislav Bolkhovitin
e6a57baa14 The initial commit of iSCSI-SCST
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@162 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2007-08-15 09:28:54 +00:00