Commit Graph

5130 Commits

Author SHA1 Message Date
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
Bart Van Assche
3c66e5bf82 scst/README.dlm: Correct instructions for waiting for logout
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6933 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-11 18:36:48 +00:00
Bart Van Assche
6dd5fbfa27 srpt/Testing.txt: Leave out --norandommap
--verify and --norandommap are mutually exclusive. Hence leave out
--norandommap.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6932 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-09 20:18:03 +00:00
Bart Van Assche
4f776f42bb scst/README.dlm: Update startup sequence information
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6931 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-08 20:52:00 +00:00
Vladislav Bolkhovitin
ce52affcdf scst_vdisk: don't report unmap alignment, if it is equal to unmap granularity
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6930 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-03 02:49:31 +00:00
Vladislav Bolkhovitin
830fe47378 Update SVN_TAGS
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6928 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-03 02:33:56 +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
f125a4e9bf scst: Update README.dlm
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6921 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-03 01:43:24 +00:00
Bart Van Assche
a5f67cd1f2 scst_dlm: Instantiate lockspace as soon as cluster mode is enabled
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6920 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-02 16:31:00 +00:00
Bart Van Assche
d41a3a3cc9 /etc/init.d/scst: Make this script work on recent versions of Ubuntu Linux
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6919 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-26 17:26:17 +00:00
Vladislav Bolkhovitin
cde21c669a scst: small post-r6913 cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6918 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-26 02:04:34 +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
1a24483678 scst.h: Move more code to <scst/backport.h>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6916 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-25 21:16:49 +00:00
Bart Van Assche
0a3d69c31b scst_vdisk: Fix spelling of "reopening"
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6915 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-25 17:03:06 +00:00
Bart Van Assche
18ccf50b87 scst_pres: Save APTPL PR info on both nodes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6914 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-22 16:51:07 +00:00
Bart Van Assche
e2b03a7836 scst_pres: Modify scst_pr_sync_device_file() function prototype
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6913 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-22 16:50:31 +00:00
Bart Van Assche
17f49dbede scst_dlm: Initialize reg->dlm_idx for PR information loaded from disk
This patch avoids that the following kernel warning appears while
starting SCST after having loaded APTPL PR information:

WARNING: scst/src/scst_dlm.c:461 scst_copy_to_dlm()

Reported-by: <consus@gmx.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6912 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-22 16:48:38 +00:00
Vladislav Bolkhovitin
ff3b499a4c scst: fix perf build
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6911 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-15 01:23:38 +00:00
Vladislav Bolkhovitin
f2da0cec29 README.dlm: update ToDo to reflect recently discovered APTL issue
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6910 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-14 01:33:20 +00:00
Vladislav Bolkhovitin
aea4052085 README.dlm update to refer to LVB truncation prevention patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6909 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-13 23:24:41 +00:00
Vladislav Bolkhovitin
0c2fd8e564 iscsi-scst: handle a case in target_del() where the target was already freed
target_del() calls handle_iscsi_events() which may recursively call target_del().
The 1st target_del() may resume its execution after the target object was already freed.

Signed-off-by: Erez Zilber <erezzi.list@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6908 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-02 01:42:49 +00:00
Vladislav Bolkhovitin
aa18a4bcb5 Logginf cleanup
1. Make PR logging available in the release mode
2. Make /sys/kernel/scst_tgt/trace_level reflect currently available logging
3. Cleanup unused log levels from /sys/kernel/scst_tgt/trace_level

Suggested-by: Consus <consus@gmx.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6907 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-07-02 01:40:48 +00:00
Vladislav Bolkhovitin
55bb0206cd scst: when checking the status of the service, also check if all daemons are running
Signed-off-by: Erez Zilber <erezzi.list@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6906 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-30 04:10:38 +00:00
Vladislav Bolkhovitin
4092e26bba scst: fix possible error path crash in debug mode
It could happen, if a non-pass-through dev handler erroneously returned
SCST_EXEC_NOT_COMPLETED and TRAGE_DBG() statements enabled in debug mode.

Reported-by: Jeff Goldszer <jeff.goldszer@alebra.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6905 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-30 04:05:14 +00:00
Vladislav Bolkhovitin
528f5e0004 Makefiles/Kconfigs for kernels 4.5 and 4.6
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6904 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-25 00:56:09 +00:00
Vladislav Bolkhovitin
d4e2c4b12e We found this bug when we add ZFS zvol to vdisk_blockio, remove it from copy
manager, and change ALUA state. After that the zvol would be in constant busy
state, even if we remove all scst modules.

The problem is that blockio_on_alua_state_change_finish will unconditionally
vdisk_open_fd. But for the above mentioned case, tgt_dev_cnt will be zero, so
the fd is permanently leaked. We fix this by only do vdisk_open_fd when
tgt_dev_cnt is not zero.

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6902 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-22 02:02:41 +00:00
Bart Van Assche
e7603fc7a7 ib_srpt: Start with comp_vector 0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6901 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 22:18:10 +00:00
Bart Van Assche
da83a4a9a4 ib_srpt: Serialize sport->port_id accesses
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6900 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:39:45 +00:00
Bart Van Assche
0d3c65105a ib_srpt: Remove a duplicate comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6899 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:39:15 +00:00
Bart Van Assche
a6f0551eef ib_srpt: Introduce srpt_init_sport()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6898 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:14:29 +00:00
Bart Van Assche
1b8ba2f3cb ib_srpt: Add link_layer and port_id sysfs attributes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6897 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:03:34 +00:00
Bart Van Assche
0556c29fdd ib_srpt: Port to Linux kernel v4.7
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6896 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-08 21:19:24 +00:00
Vladislav Bolkhovitin
353d1f1928 scst: update README how to configure SCST, so VMware start using EXTENDED COPY between datastores
Based on information from Artur Piechocki <artur.piechocki@open-e.com>
Tested-By: Isaac Goldbaum <isaac.goldbaum@mail.ru>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6892 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-27 01:02:11 +00:00
Bart Van Assche
d15d5773a7 scst, iscsi-scst, scstadmin: Spell successful and unsuccessful correctly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6891 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-07 04:30:46 +00:00
Vladislav Bolkhovitin
186369a472 scst: add possibility of polling + few minor doc cleanups
See README diff for more details



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6890 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-07 00:49:43 +00:00
Vladislav Bolkhovitin
21559f7798 qla2x00t: clarify that NPIV is not supported in this version
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6889 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-07 00:47:57 +00:00
Vladislav Bolkhovitin
c0cce7b6f5 scst: follow up to r6886
Change local and more global queue priority ratio to 2:1



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6888 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-06 03:51:21 +00:00
Vladislav Bolkhovitin
7fe7405277 cleanup: remove support of old kernels without cancel_delayed_work_sync
Otherwise we can not use scst_mutex on works



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6887 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-06 02:20:41 +00:00
Vladislav Bolkhovitin
355fa36d34 scst, EXPERIMENTAL: improve commands CPU affinity
Now commands on the fast path processed by the same thread throughout
all its lifetime.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6886 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-06 01:53:30 +00:00
Vladislav Bolkhovitin
fcb8b3c75e Make copy manager update internal data on INQUIRY changing vdisk events
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6885 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-05 01:53:17 +00:00
Vladislav Bolkhovitin
5ba4e1a707 scst_vdisk: extend vend_specific_id to 128 bytes
From Adrian Saul <Adrian.Saul@tpgtelecom.com.au>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6884 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-04 02:47:33 +00:00
Vladislav Bolkhovitin
33627cc8d8 When trying to remove a megaraid_sas device, the scst will hang inside
scst_free_device:

[  380.448608] [4]: scst: Detached from scsi0, channel 2, id 1, lun 0, type 0
[  601.138688] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[  601.138756]       Tainted: P           OE  3.19.0-58-quantastor #64~14.04.1
[  601.138810] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  601.138869] kworker/0:0     D ffff88085c6fba58     0     4      2 0x00000000
[  601.138926] Workqueue: events megasas_aen_polling [megaraid_sas]
[  601.138930]  ffff88085c6fba58 ffff88085c6f09d0 0000000000013e80 ffff88085c6fbfd8
[  601.138934]  0000000000013e80 ffffffff81c1d4e0 ffff88085c6f09d0 ffff88085c6fba38
[  601.138938]  ffff88085c6fbbd8 7fffffffffffffff ffff88085c6fbbd0 ffff88085c6f09d0
[  601.138942] Call Trace:
[  601.138955]  [<ffffffff817b5469>] schedule+0x29/0x70
[  601.138960]  [<ffffffff817b8574>] schedule_timeout+0x244/0x2c0
[  601.138968]  [<ffffffff8115fbcb>] ? irq_work_queue+0x6b/0x90
[  601.138975]  [<ffffffff810cb8e2>] ? wake_up_klogd+0x32/0x40
[  601.138979]  [<ffffffff810cbaf8>] ? console_unlock+0x208/0x480
[  601.138983]  [<ffffffff817b61c4>] wait_for_completion+0xa4/0x170
[  601.138989]  [<ffffffff810a1ea0>] ? wake_up_state+0x20/0x20
[  601.138995]  [<ffffffff8108d94c>] flush_workqueue+0x10c/0x5b0
[  601.139002]  [<ffffffff8108de05>] flush_scheduled_work+0x15/0x20
[  601.139044]  [<ffffffffc09314f6>] scst_free_device+0x16/0x50 [scst]
[  601.139051]  [<ffffffffc091a86f>] scst_remove+0x2df/0x3a0 [scst]
[  601.139056]  [<ffffffffc028c093>] ? enclosure_find+0x93/0xa0 [enclosure]
[  601.139061]  [<ffffffff814f3971>] device_del+0xe1/0x270
[  601.139062]  [<ffffffff814f3b22>] device_unregister+0x22/0x70
[  601.139066]  [<ffffffff815549ab>] __scsi_remove_device+0xbb/0xd0
[  601.139068]  [<ffffffff815549e6>] scsi_remove_device+0x26/0x40
[  601.139074]  [<ffffffffc039fb22>] megasas_aen_polling+0x362/0x610 [megaraid_sas]
[  601.139076]  [<ffffffff8108eeaf>] process_one_work+0x14f/0x440
[  601.139077]  [<ffffffff8108fab8>] worker_thread+0x118/0x510
[  601.139079]  [<ffffffff8108f9a0>] ? rescuer_thread+0x3d0/0x3d0
[  601.139082]  [<ffffffff81094b49>] kthread+0xc9/0xe0
[  601.139084]  [<ffffffff81094a80>] ? kthread_create_on_node+0x1c0/0x1c0
[  601.139087]  [<ffffffff817b9798>] ret_from_fork+0x58/0x90
[  601.139089]  [<ffffffff81094a80>] ? kthread_create_on_node+0x1c0/0x1c0

The problem is that scst_free_device will call flush_scheduled_work to wait
for ext_blockers_work, but scst_free_device itself is called from
schedule_work, thus creating deadlock.

Instead of using heavy-handed flush_scheduled_work, we use flush_work to wait
for ext_blockers_work to finish.

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6883 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-04 02:43:06 +00:00
Bart Van Assche
5f59850096 scst_sysfs, LUN replacement: Initialize 'read_only' before using it
See also r6834.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6882 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-01 22:41:20 +00:00