mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
7ba19d68a27cd7a59fc31cfb2932558d7ad249da
........ 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
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
Languages
C
90.1%
Perl
4.2%
Shell
1.8%
HTML
1.7%
Makefile
1.2%
Other
0.9%