Vladislav Bolkhovitin 7ba19d68a2 Blocked revisions 6934-6958,6965,6967-6968,6971-6972,6974-6975,6982-6983,6988-6989,6993,6998-7001,7003-7004 via svnmerge
........
  r6934 | mlx-storage | 2016-08-17 00:17:37 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: make sure rdma_disconnect is called only once
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6935 | mlx-storage | 2016-08-17 00:27:06 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: fix cleaning isert_con_dev
  
  Clean pointers not to point to invalid memory.
  - While conn is released set conn_dev->conn to null as conn is invalid now.
  - While conn_dev is released set priv(conn) to null as conn_dev is invalid now.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6936 | mlx-storage | 2016-08-17 00:27:11 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: add assertions for connection teardwon flow
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6937 | mlx-storage | 2016-08-17 00:27:15 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: fix a possible extra refcount put of isert connection
  
  On login logout stress we can start a teardown flow before connection is
  fully established.
  In this case we have one less refcount on isert connection.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6938 | mlx-storage | 2016-08-17 00:27:19 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: change wrong dev_conn bug on
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6939 | mlx-storage | 2016-08-17 00:27:24 -0700 (Wed, 17 Aug 2016) | 5 lines
  
  isert: fix fops ioctl using invalid conn
  
  On teardown flow we need to set dev conn state to disconnected.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6940 | mlx-storage | 2016-08-17 00:27:28 -0700 (Wed, 17 Aug 2016) | 8 lines
  
  isert: fix race between ioctl events and disconnect flow
  
  The ioctl events may arive after the isert connection has
  started the teardown flow.
  This scenario may occur on login logout stress.
  It may lead to NULL derefrence bugs.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6941 | mlx-storage | 2016-08-17 00:27:33 -0700 (Wed, 17 Aug 2016) | 6 lines
  
  isert: fix isert conn refcount release at unreachable event
  
  On unreachable event the isert conn kref is always 2.
  The refcount becomes 2 after successful connect event.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6942 | mlx-storage | 2016-08-17 00:27:38 -0700 (Wed, 17 Aug 2016) | 6 lines
  
  isert: fix missing refcount cleanup at error flow
  
  Before calling to rdma_accept isert kref is 2, so on failure
  we must decrease it twice.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6943 | mlx-storage | 2016-08-17 00:27:43 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: add assertion if send/recv was posted after post drain
  
  After post drain we are not allowed to call post_recv or post_send,
  because the drain must be the last flush to let us know that we may
  close the conection safely.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6944 | mlx-storage | 2016-08-17 00:27:48 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: replace kernel prints with scst macros
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6945 | mlx-storage | 2016-08-17 00:27:53 -0700 (Wed, 17 Aug 2016) | 11 lines
  
  isert: fix a race between timewait exit handler and poll cq
  
  Timewait exit event handler start to close iscsi conn
  before poll cq finish to handle all the good completions.
  This may lead to NULL deref at poll cq context or post recv
  after post drain.
  This commit close iscsi conn only when start getting flush.
  Flush is guaranteed if iscsi conn was created because when allocating
  iscsi conn we call post recv.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6946 | mlx-storage | 2016-08-17 00:27:57 -0700 (Wed, 17 Aug 2016) | 8 lines
  
  isert: fix a race when drain wr is not the last flush
  
  We must wait for both the send and recv cqs to flush all pending work
  requests.
  To make sure that the drain will be the last flush we post a second
  drain work request on the recv queue.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6947 | mlx-storage | 2016-08-17 00:28:02 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: fix isert connection kref leak at estabished event handler
  
  Fix a missing kref put when isert_conn_established return an error.
  By removing set bit ISERT_CONNECTION_ABORTED the connection teardown
  will start when recieving the flush WRs.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6948 | mlx-storage | 2016-08-17 00:28:06 -0700 (Wed, 17 Aug 2016) | 6 lines
  
  isert: close isert connection earlier
  
  We want to close the connection not only when timewait
  exit event arrive, but also on some other events.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6949 | mlx-storage | 2016-08-17 00:28:11 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: change dev conn_lock spinlock to mutex
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6950 | mlx-storage | 2016-08-17 00:28:16 -0700 (Wed, 17 Aug 2016) | 12 lines
  
  isert: fix a race between calling to rdma_disconnect and connect flow
  
  1) The race can happen after unreachable event handler close isert connection
  and calling to rdma_disconnect from another thread on illegal cm_id.
  For example call rdma_disconnect from isert_portal_release function.
  
  2) It is also possible to get ESTABLISHED RDMACM event while rdma_disconnect
  is called from another thread.
  In established event we need to check conn is not in
  teardown flow by checking the connection state with a mutex.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6951 | mlx-storage | 2016-08-17 00:28:20 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: fix isert connection kref leak
  
  To avoid rare cases when checking ISERT_CONNECTION_EST bit
  may lead to kref leak, we now take the third refcount earlier
  before calling to rdma_accept.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6952 | mlx-storage | 2016-08-17 00:28:25 -0700 (Wed, 17 Aug 2016) | 8 lines
  
  isert: faster release of isert_scst module
  
  If there is a dead connection we don't want to wait 60 seconds for
  the connection timeout error.
  So when closing the portal we close now all the connections
  immediately without waiting for events to arrive.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6953 | mlx-storage | 2016-08-17 00:28:29 -0700 (Wed, 17 Aug 2016) | 8 lines
  
  isert: fix races between conn fops read/write and disconnect flow
  
  read/write events may arive after the isert connection has
  started the teardown flow.
  This scenario may occur on login logout stress.
  It may lead to NULL derefrence bugs.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6954 | mlx-storage | 2016-08-17 00:28:34 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: add missing fd put on error flow
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6955 | mlx-storage | 2016-08-17 00:28:38 -0700 (Wed, 17 Aug 2016) | 8 lines
  
  isert: fix working with freed conn object
  
  isert_delete_conn_dev function checks if it needs to close the connection
  by checking that dev conn is not NULL.
  We were missing set conn to null when freeing it and that caused working
  with memory that was already freed.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6956 | mlx-storage | 2016-08-17 00:28:43 -0700 (Wed, 17 Aug 2016) | 7 lines
  
  isert: fix isert conn cleanup when rdma_accept fails
  
  If rdma_accept fails the state of the qp is modified to error and all
  posted recieve buffers will be flushed and because of the flush
  the isert conn teardown flow will start.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6957 | mlx-storage | 2016-08-17 00:28:47 -0700 (Wed, 17 Aug 2016) | 6 lines
  
  isert: add conn to portal conn list only if rdma_accept succeeded
  
  If rdma_accept() failed then we shouldn't call rdma_disconnect() on that QP
  as the result is unexpected.
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6958 | mlx-storage | 2016-08-17 00:28:52 -0700 (Wed, 17 Aug 2016) | 3 lines
  
  isert: fix redundant module put on error flow when handling connect request
  
  Signed-off-by: Israel Rukshin <israelr@mellanox.com>
........
  r6965 | bvassche | 2016-08-19 21:00:46 -0700 (Fri, 19 Aug 2016) | 1 line
  
  nightly build: Update kernel versions
........
  r6967 | bvassche | 2016-08-21 15:57:51 -0700 (Sun, 21 Aug 2016) | 4 lines
  
  isert-scst: Address checkpatch coding style complaints
  
  This patch does not change any functionality.
........
  r6968 | bvassche | 2016-08-21 15:58:24 -0700 (Sun, 21 Aug 2016) | 1 line
  
  scst_vdisk: Use tabs instead of spaces for indentation
........
  r6971 | bvassche | 2016-08-21 16:16:56 -0700 (Sun, 21 Aug 2016) | 1 line
  
  scst_vdisk: Comment out a local variable that is not used
........
  r6972 | bvassche | 2016-08-21 17:04:58 -0700 (Sun, 21 Aug 2016) | 4 lines
  
  isert-scst: Convert a cast into a container_of() expression
  
  This patch does not change any functionality.
........
  r6974 | bvassche | 2016-08-22 09:17:25 -0700 (Mon, 22 Aug 2016) | 1 line
  
  scst: Insert a blank line after declarations where it was missing
........
  r6975 | bvassche | 2016-08-22 10:05:07 -0700 (Mon, 22 Aug 2016) | 1 line
  
  iscsi-scst: Change (signed) into (signed int)
........
  r6982 | vlnb | 2016-08-30 17:47:52 -0700 (Tue, 30 Aug 2016) | 3 lines
  
  Web updates
........
  r6983 | vlnb | 2016-08-30 18:07:37 -0700 (Tue, 30 Aug 2016) | 3 lines
  
  More web updates
........
  r6988 | bvassche | 2016-10-03 22:24:35 -0700 (Mon, 03 Oct 2016) | 1 line
  
  scstadmin: Bump version number
........
  r6989 | bvassche | 2016-10-03 22:24:49 -0700 (Mon, 03 Oct 2016) | 1 line
  
  fcst: Bump version number
........
  r6993 | bvassche | 2016-10-06 17:31:52 -0700 (Thu, 06 Oct 2016) | 1 line
  
  nightly build: Update kernel versions
........
  r6998 | bvassche | 2016-10-10 11:09:12 -0700 (Mon, 10 Oct 2016) | 1 line
  
  ib_srpt: Use tabs instead of spaces to indent
........
  r6999 | bvassche | 2016-10-10 11:09:32 -0700 (Mon, 10 Oct 2016) | 1 line
  
  ib_srpt README: Correct default srpt_sq_size
........
  r7000 | bvassche | 2016-10-10 11:09:51 -0700 (Mon, 10 Oct 2016) | 1 line
  
  ib_srpt: Rework QP failure reporting code
........
  r7001 | bvassche | 2016-10-10 11:10:13 -0700 (Mon, 10 Oct 2016) | 1 line
  
  ib_srpt: Retry with a smaller send queue size if QP creation fails
........
  r7003 | bvassche | 2016-10-10 11:51:06 -0700 (Mon, 10 Oct 2016) | 23 lines
  
  ib_srpt: Fix a race condition in the initialization code
  
  Initialize port information before registering the CM ID. One of
  the functions called by the CM handler (srpt_cm_req_recv())
  namely uses the SCST target pointer so that pointer must be
  initialized before the CM ID is registered. This patch avoids that
  SRP login during ib_srpt initialization sporadically triggers the
  following bug:
  
  ib_srpt: Rejecting login with reason 0x10001
  BUG: unable to handle kernel NULL pointer dereference at 0000000000000100
  IP: [<ffffffffa09f1ccf>] srpt_cm_req_recv+0xf3f/0xf60 [ib_srpt]
  Call Trace:
   [<ffffffffa09f1dd5>] srpt_ib_cm_req_recv+0xe5/0x110 [ib_srpt]
   [<ffffffffa06c6fae>] cm_process_work+0x1e/0x130 [ib_cm]
   [<ffffffffa06c9ca8>] cm_req_handler+0x398/0x460 [ib_cm]
   [<ffffffffa06c9e25>] cm_work_handler+0xb5/0x208 [ib_cm]
   [<ffffffff8107d2fc>] process_one_work+0x16c/0x350
   [<ffffffff8108002a>] worker_thread+0x17a/0x410
   [<ffffffff810843f6>] kthread+0x96/0xa0
   [<ffffffff8146f364>] kernel_thread_helper+0x4/0x10
........
  r7004 | bvassche | 2016-10-10 11:51:42 -0700 (Mon, 10 Oct 2016) | 2 lines
  
  ib_srpt: Enable S/G-list clustering
........


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.2.x@7011 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-14 02:04:09 +00:00
2016-08-03 02:24:57 +00:00
2016-08-03 02:24:57 +00:00
2016-08-03 02:24:57 +00:00
2016-10-10 18:52:24 +00:00
2016-02-18 03:15:53 +00:00
2011-04-19 22:56:07 +00:00

Overview
========

This is the SCST development repository. It contains not a single
project SCST as one can think, but a number of them, which are divided
as the following:

1. SCST core in scst/ subdirectory

2. Administration utility for SCST core scstadmin in scstadmin/

3. Target drivers in own subdirectories qla2x00t/, iscsi-scst/, etc.

4. User space programs in usr/ subdirectory, like fileio_tgt.

5. Some various docs in doc/ subdirectory.

Those subprojects are in most cases independent from each other,
although some of them depend from the SCST core. They put in the single
repository only to simplify their development, they are released
independently.

Thus, use "make all" only if you really need to build everything.
Otherwise build only what you need, like for iSCSI-SCST:

make scst scst_install iscsi iscsi_install

For more information about each subproject see their README files.


QLogic target driver
====================

QLogic target driver qla2x00t is the old driver, forked from qla2xxx
several years ago. It is very stable, well tested and actively used in
many production setups. The ultimate goal is to have the mainstream
(git) QLogic target driver to be the main and the only QLogic target
driver, but, unfortunately, this driver not yet reached level of quality
and maturity of qla2x00t. We with QLogic are working toward it.

You can find the latest version of the git driver in git://git.qlogic.com/scst-qla2xxx.git.
It is maintained by QLogic, hence located in the QLogic's git.

To integrate it into the SCST build tree you need:

1. Clone the QLogic git tree somewhere in your system.

2. Create in the SCST root, i.e. this directory, a subdirectory with name
qla2x00t_git

3. Optional for the in-tree build: symlink drivers/scsi/qla2xxx
subdirectory in the cloned git tree to the qla2x00t_git subdirectory

Thats all. Now common and QLA specific root Makefile targets "magically"
start working with the new driver.

For detail instructions how to setup QLA target build environment see
its README or HOWTO. Run either "make all" to build the SCST core and
all target drivers with in-tree QLogic drivers, or the following command
with standalone QLogic drivers:

BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y make all

In presence of qla2x00t_git subdirectory you can still build the
qla2x00t using qla_old* root Makefile targets.

Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net
Description
No description provided
Readme 33 MiB
Languages
C 90.1%
Perl 4.2%
Shell 1.8%
HTML 1.7%
Makefile 1.2%
Other 0.9%