1. After attr was found in the attrs_list, it is inserted again back into the same list. As a result the list becomes corrupted.
The bug can be reproduced for example by the following sequence:
$ echo add_attribute IncomingUser user secret111111 > /sys/kernel/scst_tgt/targets/iscsi/mgmt
$ echo user secret222222 > /sys/kernel/scst_tgt/targets/iscsi/IncomingUser
$ echo del_attribute IncomingUser user > /sys/kernel/scst_tgt/targets/iscsi/mgmt
$ iscsiadm -m discovery -t st -p 127.0.0.1
Discovery fails and in syslog there is a message
Oct 2 18:58:37 vsa-00000611 iscsi-scstd: [1059] cmnd_exec_login:940: ERROR: Authentication of initiator iqn.2011-04.com.zadarastorage:1553:vc-0 failed
2. Small memory leak in error recovery path.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4545 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Add put_page_callback-2.6.32-279.patch (a copy of the RHEL 6.2 version
of the same patch) such that scripts/rebuild-rhel-kernel-rpm can rebuild
the RHEL 6.3 kernel RPM.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4535 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Speeds up reading from a RAM disk via ib_srpt by about 30%.
Tested with iSCSI-SCST, ib_srpt and scst_local.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
In it:
- Fixed NULLIO, which the original patch breaks
- Changed on all fast paths sBUG_ON() on EXTRACHECKS_BUG_ON()
- Fixed errors path in non_fileio_exec() and fileio_alloc_data_buf().
- Renamed zero_copy_read to just zero_copy.
- Docs and change log updated
- Some cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4213 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Fix three occurrences of the following warnings reported by the checkpatch
script included with Linux kernel version 3.3:
WARNING: min() should probably be min_t()
WARNING: max() should probably be max_t()
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4172 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This patch:
* fixes signatures for log_debug and log_pdu macros
* collapses __log_<LEVEL> functions into one
* adds conditional logging
Here conditional logging means that the logging priority and logging level may
vary depending on some dynamic parameters. This is helpful when software is
able to recover from errors which occur periodically and hence, there is no
need to pollute system logs with tons of repetitive non-critical lines.
The following macros are added to support this feature:
* log_info_cond
* log_warning_cond
* log_error_cond
They take an additional first parameter called "level". If it is 0 then they
act as their non-cond counterparts, otherwise they act like log_debug with the
specified level.
Those who are not interested in conditional logging are not affected: they can
continue using plain old logging macros without any changes.
Signed-off-by: Sergey Myasnikov <tigra564@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4161 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This patch moves the following utility functions from iscsi_scstd.c to misc.c
and makes them public (i.e. non-static):
* set_non_blocking
* sock_set_keepalive
Signed-off-by: Sergey Myasnikov <tigra564@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4160 d57e44dd-8a1f-0410-8b47-8ef2f437770f
__attribute__((aligned(x))) into __aligned(x) in kernel code since
checkpatch complains about the former.
BSD-signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3952 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Issue:
------------
The DevRegAttribute is sending a different Source Attribute (ISCSI name) which
represents the Storage Node for each target. So Microsoft isns server considers
the last request as the storage node and doesn't discover the previous targets.
Root Cause
----------------
Function ISNS_FUNC_DEV_ATTR_REG
Target A
Source attribute
ISCSI-Name = <IQN A Name>
Operating Attribute
ISCSI-Name = <IQN A Name>
Flags
Replace Access = 1
Target B
Source attribute
ISCSI-Name = <IQN B Name>
Operating Attribute
ISCSI-Name = <IQN B Name>
Replace Access = 1
So as per the request format Microsoft isns Server always takes the last target
as the source node. and register the same. Hence it doesn't discover the
targets other than last one. The Source Attribute has to be fixed for all targets. It
would be better if we use the first target iscsi name (rather than the last target
iscsi name) as source attribute iscsi name to represent the storage node.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3863 d57e44dd-8a1f-0410-8b47-8ef2f437770f