Commit Graph

3945 Commits

Author SHA1 Message Date
Vladislav Bolkhovitin
42f648fcbc Web copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5239 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:56:36 +00:00
Vladislav Bolkhovitin
d567113d12 iSER target page added
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5238 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:52:39 +00:00
Vladislav Bolkhovitin
d3d69d4c89 [PATCH 9/9] scst: Add iSER module to RPM build
Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5237 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:20:52 +00:00
Vladislav Bolkhovitin
623cbff5a3 [PATCH 8/9] scstadmin: Load isert-scst if iscsi is present
Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5236 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:20:03 +00:00
Vladislav Bolkhovitin
c03bd27bca [PATCH 7/9] iscsid: Implement iser support
Add iser character device handling for accepting and handling connections
received through RDMA transport.
Add isert_listener device to the poll() loop and handle incoming
connection requests.

Differentiate between iser and non iser connections
Validate RDMAExtension field and reject it if found in iscsi login request.
Also, disable immediate data and first burst for iSER since it is not supported yet

Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5235 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:19:27 +00:00
Vladislav Bolkhovitin
bded9b5943 [PATCH 6/9] iscsid: Refactor code for iser reuse
Refactor character device handling code as well as
connection allocation code in order to be able to reuse that in iser later on.

Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5234 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:18:35 +00:00
Vladislav Bolkhovitin
39d0b2983a [PATCH 5/9] iscsid: Add start/stop transmit abstraction
In order to be able to abstract from socket and iser connection fd's
we need to have generic code that can handle both.

Signed-off-by: Yan Burman <yanb@mellanox.com>




git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5233 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:17:32 +00:00
Vladislav Bolkhovitin
5357b4c37d [PATCH 4/9] isert: Add initial isert code
Initial iSER code which also supports MLNX_OFED on RedHat and Ubuntu
as well as regular OFED

Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5232 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:16:47 +00:00
Vladislav Bolkhovitin
de70fa73d9 [PATCH 3/9] iscsi: Export some functions needed by isert and refactor code for reuse
Refactor code to reuse iscsi command init in isert
Refactor conn allocation code to be able to reuse it in isert

Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5231 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:15:16 +00:00
Vladislav Bolkhovitin
52e0426703 [PATCH 2/9] iscsi: Move TCP code over to transport API
Replace iscsi-tcp specific calls with transport API calls
in order to be able to override them with iser implementation specifics.
Make iscsi-tcp specific debug print into a general print
Refactor conn close code to work with isert

Only allocate RX data in NOP for iscsi-tcp
In case of iser, the data is already received

Signed-off-by: Yan Burman <yanb@mellanox.com>




git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5230 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:13:12 +00:00
Vladislav Bolkhovitin
e885ce50f3 [PATCH 1/9] iscsi: Add iSCSI transport API
Need to have transport abstraction in order to be able to add
different transport types. In particular TCP and RDMA

Signed-off-by: Yan Burman <yanb@mellanox.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5229 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:11:50 +00:00
Vladislav Bolkhovitin
a669ff2e1a Creating branch for staging iSER target
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5228 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 04:03:28 +00:00
Vladislav Bolkhovitin
f635cfd011 vdisk_exec_format_unit(): Fix a sparse warning
Avoid that sparse reports the following warning:

warning: 'prot_usage' may be used uninitialized in this function

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5227 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 03:57:19 +00:00
Vladislav Bolkhovitin
fba7f097b7 In WT mode blockio flush is not needed, so skip this check
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5226 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 03:54:48 +00:00
Bart Van Assche
08623d3115 ib_srpt: Clarify a log message
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5225 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-27 19:01:24 +00:00
Bart Van Assche
fc0dc41452 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5224 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-26 13:52:52 +00:00
Bart Van Assche
adb3c46798 fcst: Increase ft_scst_template.sg_tablesize
The libfc implementation can handle long SG lists, hence increase
ft_scst_template.sg_tablesize from 128 to 65535.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5223 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-24 10:32:43 +00:00
Vladislav Bolkhovitin
0611548744 Fix broken link from scst/README to XFS FAQ reported by Sebastian Herbszt <herbszt@gmx.de>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5222 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-22 03:03:04 +00:00
Vladislav Bolkhovitin
85ea152e0c [PATCH] scst: Remove casts from INIT_DELAYED_WORK() statements
This is a source code cleanup patch that does not change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5221 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-22 02:57:49 +00:00
Bart Van Assche
2ee6484c6d scst: RHEL 5 build fix
Kernel versions before 2.6.26 do not have a definition for the
ACCESS_ONCE() macro, hence provide one.
    
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 14:35:22 +00:00
Bart Van Assche
72c1662421 __scst_check_deferred_commands_locked(): Add sparse locking annotation
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5219 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 12:03:23 +00:00
Bart Van Assche
d602302863 scst: Rework RESERVE / RELEASE handling
Reduce the number of reservation state variables from (one per
device + one per session) to one per device. Introduce helper
functions for manipulating the SPC-2 reservation state.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5218 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 08:09:01 +00:00
Bart Van Assche
e2fb6f4080 mpt: Use PDE_DATA if available
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5217 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 19:26:29 +00:00
Bart Van Assche
8db5286a87 mvsas_tgt: Fix various checkpatch complaints, mainly about whitespace usage
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 19:07:18 +00:00
Bart Van Assche
ed9ed528c8 mvsas_tgt: Fix sparse warnings
Also, remove unused variables, data structures and functions.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5215 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:47:02 +00:00
Bart Van Assche
ee1f37d2a5 mvsas_tgt: Port to kernel 3.12
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5214 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:46:06 +00:00
Bart Van Assche
5fb1240532 mvsas_tgt: Build fix for kernel versions <= 2.6.32
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5213 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 18:45:09 +00:00
Bart Van Assche
88a7e1764b mpt: Fix a use-after-free detected by smatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5212 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:48:41 +00:00
Bart Van Assche
80c6aa0e36 mpt: Fix warnings reported by sparse
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5211 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:46:50 +00:00
Bart Van Assche
7fd1822b4d mpt: Fix more checkpatch warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5210 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:45:32 +00:00
Bart Van Assche
6a08ef3fd9 mpt: Checkpatch - remove parentheses from return statements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5209 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:20:01 +00:00
Bart Van Assche
609fe60a8f mpt: Fix more checkpatch warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5208 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:17:45 +00:00
Bart Van Assche
c89a883339 mpt: Fix another whitespace error reported by checkpatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5207 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:07:26 +00:00
Bart Van Assche
69ee3d89a0 mpt: Do not explicitly initialize statics to zero
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5206 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:06:13 +00:00
Bart Van Assche
b065605333 mpt: Avoid that checkpatch complains about stm_[gs]et_dma_addr()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5205 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 09:04:16 +00:00
Bart Van Assche
87c68579ca mpt: Fix whitespace errors reported by checkpatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5204 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 08:59:20 +00:00
Bart Van Assche
91419daa26 mpt: Fix two checkpatch complaints about asm include files
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5203 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 08:56:28 +00:00
Bart Van Assche
2796006f3c mpt: Fix whitespace errors reported by checkpatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5202 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 08:54:08 +00:00
Bart Van Assche
974b9fb862 mpt: sysfs mode build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5201 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-19 08:17:30 +00:00
Bart Van Assche
34d18e943e mpt: Port to kernel 3.12 and fix compiler warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5200 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-18 17:48:45 +00:00
Bart Van Assche
f6d1105ed8 mpt: Clean up compiler include path
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5199 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-18 17:47:37 +00:00
Bart Van Assche
7edf970426 scst, procfs: Avoid that adding a device to a group triggers a kernel oops
This patch fixes the following kernel oops:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000178
IP: [<ffffffffa031bbc8>] scst_acg_add_lun+0x178/0x300 [scst]
Oops: 0000 [#1] PREEMPT SMP
CPU: 3 PID: 7451 Comm: scstadmin Tainted: G           O 3.13.0-rc3-debug+ #1
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
RIP: 0010:[<ffffffffa031bbc8>]  [<ffffffffa031bbc8>] scst_acg_add_lun+0x178/0x300 [scst]
Call Trace:
 [<ffffffffa03222cf>] scst_proc_groups_devices_write+0x78f/0x890 [scst]
 [<ffffffff8119dad8>] proc_reg_write+0x38/0x70
 [<ffffffff81141562>] vfs_write+0xb2/0x1f0
 [<ffffffff81141c57>] SyS_write+0x47/0xa0
 [<ffffffff814efdb9>] system_call_fastpath+0x16/0x1b
Code: 00 00 48 8b 4d b8 49 c7 c1 80 5a 34 a0 41 b8 ce 0d 00 00 48 8b 3d c1 15 03 00 48 c7 c2 42 ba 33 a0 48 c7 c6 31 ba 33 a0 48 8b 01 <48> 8b 80 78 01 00 00 48 89 44 24 20 8b 45 a4 89 44 24 18 48 8b
RIP  [<ffffffffa031bbc8>] scst_acg_add_lun+0x178/0x300 [scst]
 RSP <ffff88001f4a9de8>
CR2: 0000000000000178

This regression was introduced in commit "Small logging improvement"
(trunk r4838; 2013-04-12).

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5198 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-17 08:01:17 +00:00
Bart Van Assche
6bf914d599 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5197 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 16:11:23 +00:00
Bart Van Assche
a57c9d0cee fcst: Fix a potential deadlock
This patch fixes the following lockdep warning:

======================================================
[ INFO: possible circular locking dependency detected ]
3.13.0-rc6-debug+ #5 Tainted: G        W  O
-------------------------------------------------------
rmmod/8653 is trying to acquire lock:
 (scst_tgt_kref){+.+.+.}, at: [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]

but task is already holding lock:
 (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (ft_lport_lock){+.+.+.}:
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffff81559837>] mutex_lock_nested+0x77/0x430
       [<ffffffffa029d5a0>] ft_tgt_enable+0x20/0xd0 [fcst]
       [<ffffffffa0335c99>] scst_process_tgt_enable_store+0xe9/0x230 [scst]
       [<ffffffffa0335dfc>] scst_tgt_enable_store_work_fn+0x1c/0x20 [scst]
       [<ffffffffa0338ebc>] scst_process_sysfs_works+0xfc/0x1f0 [scst]
       [<ffffffffa033d180>] sysfs_work_thread_fn+0x120/0x2b0 [scst]
       [<ffffffff81074850>] kthread+0xf0/0x110
       [<ffffffff815663fc>] ret_from_fork+0x7c/0xb0

-> #0 (scst_tgt_kref){+.+.+.}:
       [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
       [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
       [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
       [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
       [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
       [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
       [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
       [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
       [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(ft_lport_lock);
                               lock(scst_tgt_kref);
                               lock(ft_lport_lock);
  lock(scst_tgt_kref);

 *** DEADLOCK ***

2 locks held by rmmod/8653:
 #0:  (fc_prov_mutex){+.+.+.}, at: [<ffffffffa023e222>] fc_lport_iterate+0x22/0x80 [libfc]
 #1:  (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

stack backtrace:
CPU: 0 PID: 8653 Comm: rmmod Tainted: G        W  O 3.13.0-rc6-debug+ #5
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 ffffffff8222ce70 ffff88002efdbb70 ffffffff8155551c ffffffff8222ce70
 ffff88002efdbbb0 ffffffff81552248 ffff88002efdbc00 ffff88002ed0ed88
 ffff88002ed0e6d0 0000000000000002 0000000000000002 ffff88002ed0ed88
Call Trace:
 [<ffffffff8155551c>] dump_stack+0x4e/0x7a
 [<ffffffff81552248>] print_circular_bug+0x200/0x20f
 [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
 [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
 [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
 [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
 [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
 [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
 [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
 [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
 [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
 [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
 [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5196 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:23:45 +00:00
Bart Van Assche
6d7fb6343d fcst: Avoid that "rmmod fcst" hangs
Make sure that SCST sessions get unregistered when scst_unregister_target()
is invoked. This change is necessary because of r5083 ("Disable automatic
sessions unregistration").


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5195 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:22:00 +00:00
Bart Van Assche
0e99ba02b5 qla2x00t: SLES 11 SP3 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5190 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-10 07:54:10 +00:00
Bart Van Assche
f0b1893e71 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5189 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-10 07:52:24 +00:00
Bart Van Assche
9690e0f1c3 fcst: SLES 11 SP3 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5188 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-10 07:50:10 +00:00
Bart Van Assche
54cbef15e8 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5187 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-08 19:38:41 +00:00
Bart Van Assche
a0bc415649 ib_srpt, ib_srpt.h: Fix kernel-doc warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5186 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-07 14:26:25 +00:00