Commit Graph

4574 Commits

Author SHA1 Message Date
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
aaa11b710b - Cleanups
- scst_set_initial_UA() added. It sets initial Unit Attention for session, replacing default scst_sense_reset_UA
 - task_mgmt_affected_cmds_done() callback added in struct scst_tgt_template. It's informs target driver that a received task management fun
ction has been completed.
 - Now devices blocked only in reset TM commands. ABORTs, etc. now done without devices blocking
 - scst_unregister_session_ex() removed, since there are no users of it



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@684 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 18:02:25 +00:00
Vladislav Bolkhovitin
982e4d1938 Bufflen can be changed after scst_get_cdb_info(), so for bufflen = 0 data_direction should be changed to SCST_DATA_NONE not in scst_get_cdb_info(), but in the end of parsing.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@683 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 17:04:12 +00:00
Vladislav Bolkhovitin
d3d5666f5d Cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@682 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 17:00:53 +00:00
Vladislav Bolkhovitin
250929b448 Patch from Gal Rosen <galr@storwize.com>:
There are 16 characters of the port_name + 7 characters of ":" + "\0" of
sprintf = total 24 bytes.
wwn_str has only 16 bytes.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@681 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-26 20:02:43 +00:00
Dotan Barak
8f6b4e5b99 Put some limit checking on dma segments so that
we don't, somehow, inadvertantly overrun the total
number of queue entries for a command + continuation
segments.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@680 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-23 23:18:25 +00:00
Dotan Barak
6880b800ef Major rewrite of DMA mapping code to reduce code duplication
and to allow some debug and enhancements that will be easier
soon.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@679 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-23 00:13:25 +00:00
Vladislav Bolkhovitin
3f355da360 Fix for bug reported by Gennadiy Nerubayev <parakie@gmail.com>. In some cases, e.g. with DRBD, bio->bi_end_io() can be called with IRQs disable which isn't appropriate for direct processing in SCST core. Switch to one of internal SCST threads in such cases.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@678 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-20 18:04:11 +00:00
Vladislav Bolkhovitin
0cf7566b93 Patch from Krzysztof Blaszkowski with some cleanups:
I realized yesterday that the fix missed one rare case 
still. if the hiwmk_check() returned with error and no_fail override was set 
then the counter would still cross 0 on free.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@677 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-19 19:06:13 +00:00
Vladislav Bolkhovitin
3499e33e6b Patch from Krzysztof Blaszkowski:
i noticed this issue running simple iscsi connection test to a few targets.
without included patch the active_pages_total counter wraps around 0 thus it 
breaks logic for releasing memory on "hi watermark" just like it is depicted 
in:

Inactive/active pages                      18/-25
Hi/lo watermarks [pages]                   119808/0
Hi watermark releases/failures             4/0



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@676 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-18 19:17:29 +00:00
Vladislav Bolkhovitin
e8b67bb755 - Docs updates
- Minor cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@675 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-18 18:52:35 +00:00
Vladislav Bolkhovitin
fe1a79f012 Fixes negotiation breakage, introduced by r667
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@674 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-16 18:46:00 +00:00
Dotan Barak
3ab0a8972a Fix patching that I broke.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@673 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-13 18:02:48 +00:00
Dotan Barak
97abf4d107 Merge in work from Feral into this branch. The
recovery from not being able to push a ctio
fix is in. Various task management fixes are
also in. Other work in progress.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@672 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-11 18:55:43 +00:00
Dotan Barak
5e1547134a Broaden tags target.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@671 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-11 18:54:17 +00:00
Mark Buechler
36db05162a Re-order Makefile install and uninstall a bit. Specifically
for the install so lsb commands come last should lsb not exist
on the system, at least the rest of install works.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@670 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-11 16:16:53 +00:00
Mark Buechler
b0a902a6a1 Add lsb support for init.d scripts. Patch from Bart Van Assche.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@669 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-11 16:09:45 +00:00
Vladislav Bolkhovitin
0319c5c81c Fixes checkpatch errors notices by Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@668 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-09 20:08:14 +00:00
Vladislav Bolkhovitin
293c0ee1a3 - Iscsi-scst-adm fixes. It should be fully functional now.
- Other iSCSI-SCST user space fixes, improvements and cleanups.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@667 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-06 19:52:34 +00:00
Vladislav Bolkhovitin
689bcbc261 Cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@666 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-06 19:46:57 +00:00
Vladislav Bolkhovitin
5a9a0ad491 2 missed functions added to scst_user interface:
- SCST_USER_UNREGISTER_DEVICE - to unregister device, flush mem reuse (SGV) cache and send UCMD_STATE_ON_CACHE_FREEING notifications for all freed buffers to the user space handler. Simple device close doesn't allow that, so all the cached buffers might look as "leaked" from the user space handler POV.

 - SCST_USER_FLUSH_CACHE - to flush mem reuse (SGV) cache and send UCMD_STATE_ON_CACHE_FREEING notifications for all freed buffers to the user space handler

+ some cosmetics

Docs update is coming



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@665 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-05 18:30:50 +00:00
Vladislav Bolkhovitin
45fd88076c - Fix typo in scst_rx_mgmt_fn_tag() call for task abort
- Cosmetics



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@664 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-05 18:23:28 +00:00
Vladislav Bolkhovitin
c10ae6b32d Clustering of scst_user pages added
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@663 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-05 18:07:51 +00:00
Vladislav Bolkhovitin
a34ec0f7ff A bunch of pending fixes/cleanups:
- Docs about limitation of having initiator and target on the same host updated + cleanups
 - Minor local thread storage improvements
 - TRACE_MGMT_MINOR excluded from the default set of trace flags to not confuse people
 - Dedicated kmem_cache for blockio created



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@662 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-04 18:45:32 +00:00
Dotan Barak
e4d19dd1da Remove some misleading and dead files.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@661 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-03 06:32:12 +00:00
Dotan Barak
75561e4790 Update some firmware sets.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@660 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-03 06:31:27 +00:00
Vladislav Bolkhovitin
b237ddf08f In the header file scst.h scst_cmd::sg_cnt and tgt_sg_cnt::sg_cnt are declared
as signed integers, while some inline functions in the same header file treat
these as unsigned integers. The patch below converts all uses to signed
integer. 

The patch below has been verified by checking the output files generated by
the following command:
  scripts/run-regression-tests -k 2.6.24.7 -k 2.6.25.20 -k 2.6.26.8 -k 2.6.27.13 -k 2.6.28.2

Note: I do not expect that this patch changes the behavior of SCST in any way.
This patch is not a bug fix -- all it does is cleaning up an inconsistency.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@659 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-02 16:25:47 +00:00
Vladislav Bolkhovitin
d5322f10ad The patch below implements the following changes for the iSCSI-SCST HOWTO
document:
- Added RHEL / CentOS to the list of officially supported kernels.
- Mentioned that regenerating the initial RAM disk is an explicit step on many
  distro's.
- Replaced shell instructions for generating /etc/scst.conf by a sequence of
  scstadmin commands.
- Added note about insserv.

Also it adds small HOWTO how to recompile RHEL/CentOS kernel in README_RHEL.

Also it implements some docs cleanups.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@658 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-02 15:49:39 +00:00
Vladislav Bolkhovitin
dd1400dddc The patch below adds the following two RHEL 5 / CentOS 5 patches to the SCST
source tree:
- Support for zero-copy TCP transfer completion.
- An implementation of scsi_execute_async_fifo().
Except for the hunk headers, these patches are identical to similarly named
patches already present in the SCST source tree.

Additionally, implementations of seq_list_start() and seq_list_next() are
provided for those kernel versions that do not define these functions.

The patch below has been tested by verifying that iSCSI data transfer still
works OK on CentOS 5.2 (x86_64).

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@657 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-02 11:36:53 +00:00
Vladislav Bolkhovitin
ae5ec143aa The patch below is a minor correction for the 2.6.27 in-tree kernel patches
I submitted about three months ago: the patch headers now refer to the 2.6.27
kernel as they should instead of the 2.6.26 kernel. At least one user has been
confused by this. The patch below does not change any behavior of SCST.
The patch has been tested by verifying that the output of the following
command remained the same as before the modifications:
scripts/run-regression-tests -k 2.6.27

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@656 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-02 11:29:14 +00:00
Vladislav Bolkhovitin
52d7752136 - Removed artificial limitation on sg_tablesize. It isn't needed, because the regular iSCSI negotiated MaxRecvDataSegmentLength-related facilities do all the job pretty well.
- Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@655 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-02 11:16:38 +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
ff10abd363 Merge with IET r196:
- Allow removal of kernel target objects if the user space object does not exist

Based on a patch by Lars Ellenberg.

Signed-off-by: Arne Redlich <agr@powerkom-dd.de>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@653 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 16:49:01 +00:00
Vladislav Bolkhovitin
922c377cd2 Merge with IET r195:
From: Lars Ellenberg <lars.ellenberg@linbit.com>

Ignore SIGPIPE in ietd

Otherwise we would die in some later write() during the event_loop
instead of getting EPIPE!



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@652 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 16:41:22 +00:00
Vladislav Bolkhovitin
0f68fb5b58 Merge of IET r194:
- Add support for Reject PDUs and make use of them in appropriate places.

Signed-off-by: Arne Redlich <agr@powerkom-dd.de>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@651 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 16:36:39 +00:00
Vladislav Bolkhovitin
4a7cdb58b4 Merge with IET r192-193:
- Introduce min*/max*() and more list_* macros

 - Multipart PDU support for discovery sessions

The conn's response buffer is now replaced with a list of buffers and
all users are updated accordingly. Discovery sessions can make use of
this mechanism, if the list of targets + addresses does not fit into a
single text PDU, the initiator may now retrieve subsequent parts.

This also fixes the data segment handling for discovery sessions.

Based on a patch originally provided by Shreyansh Jain <shrey.linux@gmail.com>

Signed-off-by: Arne Redlich <agr@powerkom-dd.de>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@650 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 16:25:52 +00:00
Vladislav Bolkhovitin
684719c66e Merge with IET r170-191:
- Update MaxConnections documentation
 - Remove isns config description from man page
 - Check return values of chdir(), ftruncate() and write(), because recent versions of the glibc insist on the return value being checked by
introducing __attribute__((warn_unused_result)) to these functions.
 - Fix snprintf use in isns.c
 - Take \0-termination into account when passing strings to isns_tlv_set() to solve incompatibility with MS iSNS 3.0 as IQN length is multiple of 4
 - Fix list corruption if SCST target registration fails
 - Register the target port actually used instead of the default iSCSI port.
 - Remove unused connection->pad
 - Refactor cmnd_execute()
 - Version changed



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@649 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-29 19:10:10 +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
a03936f3bc Merge with IET r169:
From:  Shreyansh Jain <shrey.linux at gmail.com>
Subject: [Patch 1/1] Segfault in ietd buffer overrun in dump_line

Fix a buffer overrun problem in __dump_line function in log.c file.
It also removes a stray 'return' call in log_pdu function which was
restricting a PDU dump call to complete log_pdu operation.

Also, in log_pdu function, the first check for log_level against
passed parameter for log was incorrect and would have forced a return
even when the caller has set the logging level to acceptable level.

Signed-off-by: Shreyansh Jain <shrey.linux at gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@647 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-29 12:19:22 +00:00
Vladislav Bolkhovitin
04041fa3f1 Merge with IET r160-168: add iscsi-scst-adm support to display list of CHAP accounts and their data
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@646 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-29 12:12:42 +00:00
Vladislav Bolkhovitin
2f392619fb Make USN related stuff completed. Unfortunately, it can break existing cluster setups, but it's better to make it now, then later.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@645 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-28 18:44:59 +00:00
Vladislav Bolkhovitin
467b075b57 Sync with IET revisions 156-159: fix for compilation on glibc 2.8
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@644 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-27 18:50:33 +00:00
Vladislav Bolkhovitin
9ab503a347 - Add autogenerated USN
- Sync fileio_tgt with scst_vdisk



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@643 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-27 18:09:24 +00:00
Vladislav Bolkhovitin
77d509b0f9 - Fixed race in scst_user, which can lead to usage of already freed command. A misbehaving user space handler can make ucmd to get dead
immediately after the lock is released and we should catch it.
 - Text in README about barriers usage updated
 - Minor cleanup with aim to have more robust code



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@642 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-26 18:08:07 +00:00
Vladislav Bolkhovitin
2482d19490 The patch below fixes most checkpatch and sparse issues that are reported by
the most recent versions (checkpatch 2.6.28 / latest sparse git version) and
that were not reported by previous versions (checkpatch 2.6.27 / sparse 0.4.1).
The patch below fixes the following issues:
* Removed trailing space in iscsi-scst/README_in-tree.
* Fixed sparse complaints about functions that were not declared static.
* Fixed sparse complaints about casts between address spaces: such casts are
   now either fixed or explicit (via the __force keyword).

The patch below has been verified by checking the output produced by:
scripts/run-regression-tests -k 2.6.28.1

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@641 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-26 17:32:50 +00:00
Vladislav Bolkhovitin
a5589e099a Recently (Subversion revision 633) code was added to scst_vdisk.c that
performs a.o. 64-bit division. While gcc supports 64-bit divisions on 32-bit
CPU's, gcc generates a function call for these 64-bit divisions (see also
http://gcc.gnu.org/onlinedocs/gccint/Integer-library-routines.html for the
entire list). Unfortunately there is no implementation available for these
functions in the Linux kernel. Which means that loading kernel modules
that contain 64-bit divisions on a 32-bit system will fail and that insmod/
modprobe will complain about undefined references to e.g. __umoddi3. AFAIK the
proper approach in the Linux kernel is to use the do_div() macro for
performing 64-bit divisions. This macro is defined in <asm/div64.h>. The patch
below converts the call to div_s64_rem() by a call to do_div().

The patch below has been verified 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.12 -k 2.6.28.1
  on a 64-bit system and verified that the output of the re*/sparse* files did
  not contain any compilation errors.
- Verified that the patched SCST source compiles fine on CentOS 5.2, 32-bit.
- Verified that the scst_vdisk module loads correctly on CentOS 5.2, 32-bit.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@640 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-26 17:23:46 +00:00
Vladislav Bolkhovitin
3943177f67 Fixes wrong usage of the last parameter of module_param_named()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@639 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-26 12:57:22 +00:00
Vladislav Bolkhovitin
48addc3482 Modified patch from Bart Van Assche <bart.vanassche@gmail.com>
It, hopefully, fixes compilation problems on CentOS 5.2 as well as on vanilla kernels <2.6.28


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@638 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-23 19:51:54 +00:00
Bart Van Assche
c5faf6a7b4 - Fixed bug in evaluation of expressions containing '&&' or '||'.
- Added support for evaluating #ifdef and #ifndef.
- Added support for substituting the macro's RHEL_MAJOR, RHEL_MINOR and RHEL_RELEASE_CODE.
- Added more comments.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@637 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-19 19:07:42 +00:00
Bart Van Assche
553f1920e1 Bumped default kernel version to 2.6.28.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@636 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-17 10:34:48 +00:00