Commit Graph

503 Commits

Author SHA1 Message Date
Vladislav Bolkhovitin
bb2f47e7a8 iscsi-scst: add target_ip attribute
It adds target_ip attribute containing target IP address in each
/sys/kernel/scst_tgt/targets/iscsi/TARGET/sessions/INITIATOR/INITIATOR_IP subdirectory.

It's useful to simplify monitoring management utilities



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7067 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:53:48 +00:00
Vladislav Bolkhovitin
80e49beea8 Put_page_callback and scst_exec_req_fifo patches for RHEL5/6
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7066 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:49:07 +00:00
Bart Van Assche
7f1d8c91b1 iscsi-scst: Port to Linux kernel versions >= v4.7
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7021 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-26 21:33:50 +00:00
Bart Van Assche
599a059cf8 isert-scst: Port to Linux kernel v4.9
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7020 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-25 22:22:07 +00:00
Bart Van Assche
bfe9d77412 isert-scst: Cache L_Key
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7019 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-25 22:21:46 +00:00
Vladislav Bolkhovitin
1f72d604cc iscsi-scst: fix false positive BUG_ON()
It's false positive, because responses live in the parent request's list
until last put for the parent.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7009 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-14 01:30:17 +00:00
Vladislav Bolkhovitin
3c6e21704f iscsi: convert recently added BUG_ON() to EXTRACHECKS_BUG_ON()
This check is rather debug check, so should belong to debug build only



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6980 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-24 02:05:03 +00:00
Bart Van Assche
c19a667981 isert-scst: More MOFED 3.3 fixes for kernel versions >= 4.6.0
This is a slightly modified version of a patch from
Israel Rukshin <israelr@mellanox.com>.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6977 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-23 15:42:41 +00:00
Bart Van Assche
0d438351f9 iscsi-scst: Change (signed) into (signed int)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6975 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-22 17:05:07 +00:00
Bart Van Assche
d2dd61c072 isert-scst, srpt: Fix build on systems with kernel >= 4.2.0 + MOFED 3.3
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6973 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-22 04:28:52 +00:00
Bart Van Assche
3f35afdf88 isert-scst: Convert a cast into a container_of() expression
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6972 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-22 00:04:58 +00:00
Bart Van Assche
7f9c69ae21 isert-scst: Address checkpatch coding style complaints
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6967 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-21 22:57:51 +00:00
Israel Rukshin
40fd212bdf isert: fix redundant module put on error flow when handling connect request
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6958 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:52 +00:00
Israel Rukshin
0498de2100 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6957 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:47 +00:00
Israel Rukshin
183ef82731 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6956 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:43 +00:00
Israel Rukshin
73b50bce1b 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6955 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:38 +00:00
Israel Rukshin
b292383396 isert: add missing fd put on error flow
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6954 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:34 +00:00
Israel Rukshin
09d719a009 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6953 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:29 +00:00
Israel Rukshin
9dee83d555 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6952 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:25 +00:00
Israel Rukshin
45256dd888 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6951 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:20 +00:00
Israel Rukshin
87902c8722 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6950 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:16 +00:00
Israel Rukshin
79949e9b4c isert: change dev conn_lock spinlock to mutex
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6949 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:11 +00:00
Israel Rukshin
dbf6975a3b 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6948 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:06 +00:00
Israel Rukshin
9c891f321e 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6947 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:28:02 +00:00
Israel Rukshin
3ce0f6604d 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6946 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:57 +00:00
Israel Rukshin
807ae45a76 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6945 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:53 +00:00
Israel Rukshin
1c3de9fa71 isert: replace kernel prints with scst macros
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6944 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:48 +00:00
Israel Rukshin
854a7a060d 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6943 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:43 +00:00
Israel Rukshin
b235efb8d2 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6942 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:38 +00:00
Israel Rukshin
2e4544e351 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6941 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:33 +00:00
Israel Rukshin
8587672dc4 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6940 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:28 +00:00
Israel Rukshin
e3f77ba979 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6939 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:24 +00:00
Israel Rukshin
a67322d288 isert: change wrong dev_conn bug on
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6938 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:19 +00:00
Israel Rukshin
32ca0a7846 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6937 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:15 +00:00
Israel Rukshin
a3b45f61bf isert: add assertions for connection teardwon flow
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6936 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:11 +00:00
Israel Rukshin
c3827a6f54 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>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6935 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:27:06 +00:00
Israel Rukshin
583f452957 isert: make sure rdma_disconnect is called only once
Signed-off-by: Israel Rukshin <israelr@mellanox.com>

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6934 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-17 07:17:37 +00:00
Vladislav Bolkhovitin
69863eb497 Increase version to 3.3
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6927 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-03 02:32:17 +00:00
Vladislav Bolkhovitin
244271120e iscsi-scst: increase past CmdSN window to 2048
On modern storage there might be more, than 128, commands queued, so
previous CmdSN window might be too small and on unstable networks lead
to infinite retries. For more infor see thread
https://sourceforge.net/p/scst/mailman/message/35238904.

Reported-By: Lev Vainblat <lev@zadarastorage.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6917 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-26 01:42:26 +00:00
Bart Van Assche
76b20c76b8 isert: fix race between teardown flow and connect flow
It is possible to get ESTABLISHED RDMACM event while the connection
is already started teardown flow (i.e. addr change).
At teardown the refcount is reduced to zero and we start releasing the
connection. In established event We need to check conn is not in teardown
flow by checking its ref count is not 0.

Signed-off-by: Israel Rukshin <israelr@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6879 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:13:33 +00:00
Bart Van Assche
07bc4bb1af isert: clean tmo timer when freeing the connection
The tmo timer is set when allocating a new connection.
We need to release it in case it didn't execute yet.
Else timer execution will lead to a NULL dereference bug on conn.

Signed-off-by: Israel Rukshin <israelr@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6878 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:13:13 +00:00
Bart Van Assche
0283a854ed isert: wait for RDMA CM event to complete before destroy resources
There is a race between RDMACM event handler and isert_conn_free.
The event handler use the connection resources and isert_conn_free
destroy them.
This commit fix multiple NULL dereference bugs.

Signed-off-by: Israel Rukshin <israelr@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6877 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:12:47 +00:00
Bart Van Assche
f297ef6f38 isert: fix double free of a fake request
A nop that is sent from the scst is treated as a fake request.
When a fake request is allocated we release it immediately,
so it's wrong to release it also on a completion error (isert_pdu_err).

This commit fix a NULL dereference bug when receiving completion with
error on this nop.

Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Signed-off-by: Ariel Nahum <arieln@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6876 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:12:17 +00:00
Bart Van Assche
3ab98d8174 iscsi-scst: Fix checkpatch complaints about whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6846 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:10:26 +00:00
Bart Van Assche
eff3021fb5 scst: Port to Linux kernel v4.6
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6835 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 04:08:12 +00:00
Vladislav Bolkhovitin
83d0cb0f46 iscsi-scst: fix possible recursive locking
cmnd_done() called from cmnd_put() can take cmd_list_lock, so it must
not be called under it.

Reported and tested by David Chen <david.chen@osnexus.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6821 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-02 04:13:42 +00:00
Vladislav Bolkhovitin
a1b613af75 iscsi-scst: clarify comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-02-19 03:12:53 +00:00
Bart Van Assche
2ce7057d54 isert-scst: Port to Linux kernel v4.5
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6798 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-02-16 19:35:52 +00:00
Vladislav Bolkhovitin
fa2f54ac9e Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6787 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-01-22 04:04:43 +00:00
Bart Van Assche
df2a2ac1ab iscsi-scst, procfs: Fix a compiler warning
Avoid that the compiler warns that attr_info is not used in the procfs
build.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6742 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-12-16 08:44:04 +00:00