| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a safe logout option, which uses libmount from util-linux to
check for active mounts (and swaps) over devices, their partitions, and
any holders (like LVM and multipath device maps). When enabled iscsid
will refuse to logout of sessions actively being used for mounts,
returning a status of EBUSY to the ipc request.
I've made it a configuration option (iscsid.safe_logout) that defaults
to "No" to preserve the existing behavior as the default, while making
it available for users that prefer a safety check.
This does add a new dependency on libmount.
Signed-off-by: Chris Leech <cleech@redhat.com>
|
|
|
|
|
| |
Those two units, based on the work by Jóhann B. Guðmundsson, exploit
on-demand socket activation in iscsid.
|
|
|
|
|
| |
This has iscsiadm/iscsid create the def ifaces when they are first
read.
|
|
|
|
|
|
|
| |
This has the red hat init script use iscsiadm to
load the proper drivers. The call to iscsiadm -m iface
is needed to setup the default iface bindings and load
the offload drivers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Current status:
Using iscsiadm one cannot do any network configuration for qla4xxx
adapters.
However an iface is created for the qla4xxx ports using the hwaddress.
\# ls /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
This allows user to issue sendtargets via the qla4xxx iscsi offload.
2. Current Proposal:
Current proposal is to allow iscsiadm to configure the network settings
for qla4xxx ports.
This implementation is based on discussions at
- http://marc.info/?l=linux-scsi&m=127066184916180&w=2
- http://groups.google.com/group/open-iscsi/browse_thread/thread/d8e8c2df71c95d69/8f731d95d46141a0?lnk=gst&q=iscsi+hba#
2.1 Changes in iscsiadm/iscsid
2.1.1 Add a new event: ISCSI_UEVENT_SET_IFACE_PARAMS
2.1.2 New structure/enum to represent a single network parameter
- enum iscsi_net_param;
- struct iscsi_iface_param_info;
2.1.3 Added new parameters in iface
2.1.4 Change in operations
Add two new operations to iscsiadm
apply: Apply the single iface settings
applyall: Apply the iface settings of all iface having the same MAC
address
2.2 Changes in sysfs network representation
The new sysfs directory would look like this:-
/sys/class/iscsi_iface/-|
_______________________|
|
|- ipv4-iface-<host_no>-<iface_no>/ <-- for ipv4
|- bootproto
|- enabled
|- ipaddress
|- subnet
|- gateway
|- mtu
|- port
|- vlan
|- vlan_enabled
|- vlan_priority
|- ipv6-iface-<host_no>-<iface_no>/ <-- for ipv6
|- enabled
|- ipaddr_autocfg
|- ipaddress
|- link_local_addr
|- linklocal_autocfg
|- mtu
|- port
|- router_addr
|- vlan
|- vlan_enabled
|- vlan_priority
3. Flow:
3.1 User space code:
- If user specify --op=update, then just update the iface
config file
- If use specify --op=applyall then ifaces for the host
passed in.
and build up the net config buffer.
- Note: If --op is "apply" then only settings for single
iface is read,
the iface provided with -I option is only read.
- The net config buffer will look like this.
----------------------------------------------------------------|
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_ADDR; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipaddress[0]; |
| value[1] = ipaddress[1]; |
| value[2] = ipaddress[2]; |
| value[3] = ipaddress[3]; |
| } |
----------------------------------------------------------------|
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_GW; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipgateway[0]; |
| value[1] = ipgateway[1]; |
| value[2] = ipgateway[2]; |
| value[3] = ipgateway[3]; |
| } |
-----------------------------------------------------------------
| |
| iscsi_net_param { |
| iface_num = 1; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_ADDR; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipaddress[0]; |
| value[1] = ipaddress[1]; |
| value[2] = ipaddress[2]; |
| value[3] = ipaddress[3]; |
| } |
-----------------------------------------------------------------
-----------------------------------------------------------------
| iscsi_net_param { |
| iface_num = 0; |
| len = 4; |
| param = ISCSI_NET_PARAM_IPV4_GW; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| value[0] = ipgateway[0]; |
| value[1] = ipgateway[1]; |
| value[2] = ipgateway[2]; |
| value[3] = ipgateway[3]; |
| } |
-----------------------------------------------------------------
| iscsi_net_param { |
| iface_num = 1; |
| len = 1; |
| param = ISCSI_NET_PARAM_IFACE_ENABLED; |
| iface_type = ISCSI_IFACE_TYPE_IPV4; |
| param_type = ISCSI_NET_PARAM; |
| offset = 0; |
| value[0] = 0; /* 0 = disable, default = 1 = enable */ |
| } |
-----------------------------------------------------------------
Each netconfig parameter has different size requirement for value field.
e.g.: IPv4 address requires 4 bytes, IPv6 address requires 16 bytes etc.
The memory allocated for each netconfig parameter is size of
iscsi_net_param + length required for that parameter.
The multiple IO Vector mechanism is used to send netconfig
parameter from user space to kernel using Netlink interface.
IO Vector 0 is used for Netlink message header.
IO Vector 1 is used for iSCSI User Event (ev).
- The ev will be sent down with event type =
ISCSI_UEVENT_SET_NET_CONFIG
IO Vector 2 onwards, each vector consists of the struct
iscsi_net_param
with parameter name followed by its value.
The total size will be addition of all the IO vector sizes.
3.2 Kernel space code:
- Once event is received, the buffer will look like struct
iscsi_net_param
with parameter name followed by its value, then next parameter
and
its value and so on.
- the scsi_transport_iscsi would call the adapter's
transport->set_net_config - In set_net_config each
individual param can be decoded and set into the
hardware.
4. qla4xxx configuration:
iscsid, creates the iface for qla4xxx, based on the hwaddress.
To display
the iface related to qla4xxx execute following
\# iscsiadm -m iface
qla4xxx.00:0e:1e:04:8b:2e
qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<empty>
qla4xxx.00:0e:1e:04:8b:2e.ipv6
qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<e
mpty>
qla4xxx.00:0e:1e:04:8b:2a
qla4xxx,00:0e:1e:04:8b:2a,20.15.0.66,<empty>,<emp
ty>
qla4xxx.00:0e:1e:04:8b:2a.ipv6
qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:1111:2222::8888,<empty>,<empty>
qla4xxx.00:0e:1e:04:8b:2a.ipv6.1
qla4xxx,00:0e:1e:04:8b:2a,2001:DB8:4444:5555::9999,<empty>,<empty>
To setup network configuration there can be two methods
4. 1. User can manually modify the iface file, and issue an "apply"
command.
---------------------------------------------------------------------------
\#cat /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
Example:
\# cat qla4xxx.00:0e:1e:04:8b:2a
iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a
iface.transport_name = qla4xxx
iface.hwaddress = 00:0e:1e:04:8b:2a
iface.state = enable
iface.iface_num = 0 (default)
iface.bootproto = static
iface.ipaddress = 192.168.2.2 (decimal)
iface.subnetmask = 255.255.255.0 (decimal)
\# vi qla4xxx.00:0e:1e:04:8b:2a.ipv6
(If file does not exist, the one can create it)
iface.iscsi_ifacename = qla4xxx.00:0e:1e:04:8b:2a.ipv6
iface.transport_name = qla4xxx
iface.hwaddress = 00:0e:1e:04:8b:2a
iface.ipaddress = 1111:2222::7777:8888 (hex)
iface.iface_num = 0
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall
This will find the ifaces on the host with MAC address
00:0e:1e:04:8b:2a and apply the settings to the hardware..
Note, this will read all the iface belonging to the same MAC
address.
Note2, Instead of a MAC address the host number can be
passed in.
4.2. User can use iscsiadm to specify the values and then apply
--------------------------------------------------------------
\# ls /etc/iscsi/ifaces/
iface.example iface0 qla4xxx.00:0e:1e:04:8b:2a
qla4xxx.00:0e:1e:04:8b:2e
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.2
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.gateway -v 192.168.1.1
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.subnet_mask -v 255.255.255.0
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a -o applyall
Setting up multiple IP:
First interface (default, no need to set iface_num, it is 0
by default)
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.2
Create the second one if it does not exist
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a.1 -op=new
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.iface_num -v 1 (Mandatory)
\# iscsiadm -m iface -I qla4xxx.00:0e:1e:04:8b:2a -o update
\
-n iface.ipaddress -v 192.168.1.3
\# iscsiadm -m iface -H 00:0e:1e:04:8b:2a --op=applyall
Note: If there are common settings for multiple interfaces
then the
settings from 0th iface would be considered valid.
Note: To apply settings for a single iface, just say
--op=apply
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
[formatting fixes and addition of host param for applyall]
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Leading-login only takes effect when performing "login-by-startup" (ie,
iscsiadm -m node -L ...). For any nodes with the new
'node.leading_login' config value set to "Yes" (The default is "No"), a
login attempt will be made on each successive iface record until one
succeeds.
The intent is to only have a single iSCSI session for each configured
target at startup but also allow for fallthrough to alternate ifaces in
case of network issues.
Signed-off-by: Jim Ramsay <jim_ramsay@dell.com>
|
|
|
|
|
|
|
|
|
|
| |
If a record has this set to anything other than the default value of 1,
performing a login with this record will ensure that at least that
number of sessions are present for that recordr: The code counts the
number of sessions currently active for this record, and will perform
multiple logins if the count is less than nr_sessions.
Signed-off-by: Jim Ramsay <jim_ramsay@dell.com>
|
|
|
|
|
|
| |
Include latest fixes from SUSE.
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
|
|
|
|
|
|
|
|
|
| |
From Hannes Reinecke
Rework the iSCSI shutdown logic to tear down the block device
stack correctly.
Signed-off-by: Hannes Reinecke <hare@suse.de>
[fix merge issues]
Mike Christie
|
|
|
|
|
|
|
|
|
| |
iscsiadm/iscsistart return a mix of type of returns codes.
Sometimes -1 and sometimes a EXYZ type of error code. This
patch has them return a ISCSI_ERR value.
See iscsiadm man page EXIT STATUS section for error
code definitions.
|
|
|
|
|
|
|
| |
This patch has isns discoveryd use the isns discovery
rec settings instead of the iscsid.conf ones, so
that the set up the is the same as ST and to give us
freedom in the future to add more settings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We may need to have different CHAP settings for each
discovery portal. This patch has us use the discovery
records instead of the iscsid.conf method of specifying
the sendtargets info.
If the discovery record has
discovery.sendtargets.use_discoveryd = Yes
then iscsid will use that record to do sendtargets
discovery.
The poll interval can be set with
discovery.sendtargets.discoveryd_poll_inval.
|
|
|
|
|
|
|
|
|
|
|
| |
This has the suse and red hat scripts use the iscsiadm
kill command to shutdown the daemon. This is needed
so if the discovery daemon is used then it will be
cleanly stopped.
This does not modify the debian script because I was
not sure what the start-stop stuff was doing and did not
want to add a bug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the following params to iscsid.conf
discovery.daemon.isns.addresses
discovery.daemon.isns.poll_interval
These work like SendTargets where if you the param iscsid will do
discovery and log into the portals found.
This also adds iSNS SCN support. Like the other code it only supports
login of new targets.
Some notes:
- It does not appear to work with the Microsoft iSNS server
shipping with Windows 2008 rc. I have not tested 2003.
The server does not seem to be sending any SCNs and at the
same time when we register for SCNs it tells us the operation
was successful. From the Microsoft docs it appears that
the server does not support SCN events.
- Linux-isns is not working with our code. The Linux-isns
code appears to be sending iSNS SCN pdus with an incorrect
format.
- It is working with open-isns.git.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a MaxXmitDataSegmentLength param to iscsid.conf.
It will limit the size of the pdu we send to the target.
If you set it to 0, then we use the old behavior where we
just use whatever the target requested. If you set it to
a valid value then we use the min of the set value and
what the target requested.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the native isns code with open-isns's libisns.
I included the open-isns code in the open-iscsi tarball
to make distribution easier since some distros use different
isns clients and may not want to carry open-isns.
This is based on open-isns commit
5e09f36d3446e41de0b8361601ffec4cd140d513.
Changes in iSNS behavior/use:
- To do discovery you must pass the ip and optionally the
port to iscsiadm:
iscsiadm -m discovery -t st -p 10.15.0.9
This command accepts the same ops as sendtargets so you can
add/remove/update the node records that are created.
It also supports ifaces properly now.
- isns.address and isns.port in iscsid.conf are no longer
used.
- ESI is temporarily not supported. This will be fixed in the
next patch when SCNs support is added.
- The iscsiadm isns discovery command is not marked as stable.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch has iscsid do SendTargets to the addresses pointed to
discovery.daemon.sendtargets.addresses
iscsid.conf. It will do it every
discovery.daemon.sendtargets.poll_interval
seconds.
This is useful for setups where the target returns only the
valid portals and you want to log into all the portals returned.
If the target returns all portals, then this still works, but
it is a little loud when a login fails.
Notes:
- It will use the ifaces setup in /etc/iscsi/ifaces.
- For iscsi settings it will use the /etc/iscsi/iscsid.conf settings.
- It currently only logs into new targets. It does not remove old
ones. You have to run
iscsiadm -m session -r $SID -u
to remove stale sessions.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
This mvs the session management functions to a new file
so they can be used by the discovery daemons.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
The previous kernel patch added warm target reset support.
This patch allows you to set a timeout for the operation.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
We now support replacement_timeout values of 0 and -1. See
the iscsid.conf for details.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch and mail from Hans de Goede:
Make iscsiadm start iscsid when needed so that iscsid will not actually
be started even if there are no iscsi disks configured yet.
From Mike Chrisite:
Orignal patch had Fedora startup string hard coded. Modified
patch so that it got read from iscsid.conf.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch and email from Erez:
If 'iscsiadm -m node --logoutall=all' fails when stopping
the open-iscsi service, we shouldn't kill iscsid.
This solves the following race:
1. A logout from a node is initiated by the user.
2. Before the logout completes, the user runs /etc/init.d/iscsi stop.
The 'stop' method logs out from all nodes. When it tries to logout
from the node that is already logging out (step #1), it fails
because it is already logging out. Then, the 'stop' method kills
iscsid.
3. The logout command form step #1 returns and notifies the (dead)
daemon.
Now, running 'iscsiadm -m session' shows a session (which, actually,
doesn't
exist anymore) and the iscsi service is down.
Signed-off-by: Erez Zilber <erezzi.list@gmail.com>
|
|
|
|
| |
This sets node.session.queue_depth for the session's devices.
|
|
|
|
|
|
|
|
| |
Increase default node.conn[0].iscsi.MaxRecvDataSegmentLength
to 262144 to closer match IO sizes we see from block layer.
The default block layer max is actually 512K, but in testing
setting the MaxRecvDataSegmentLength to this high a value
caused perf regressions with some targets.
|
|
|
|
|
|
|
| |
This sets the default xmit thread nice to -20. This will
increase throughput and decrease latency, but could hog
the cpu more. In the latter case you can set the nice in
/etc/iscsi/iscsid.conf's node.session.xmit_thread_priority setting.
|
|
|
|
|
|
|
|
|
| |
added new transport cxgb3i.
This patch is based on the master branch of the git tree.
Signed-off-by: Karen Xie <kxie@chelsio.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the retry count only controls the number of retries
that we attempt when the initial login attempt timesout.
It used to control the retry count for any error, which resulted
in it having to be set really high and it was also difficult to
figure out what to set it to since users (and me) have no idea
how quickly the network layer will return errors in some cases.
The retry count is also used to determine the max amount of time
to wait for the initial login attempt. We do this by:
login retry max * login timeout = max time
This makes it easier for the user to calculate the
max time that they will have to wait.
The default time to wait is now 2 minutes for normal sessions and
7 minutes for root.
|
|
|
|
|
|
|
|
|
|
|
| |
45 is too high if the connection is timing out. It is
45 * 15 seconds. This sets the retry limit to 8,
which would make the connection timeout wait 2 minutes.
This is still to few retries for the static ip problem, so
in the next patch we will modify iscsid so it retries
connection errors like this up to login_timeout * login_retry
seconds. This would be 2 minutes which is working for the
bug reporters on the list.
|
|
|
|
|
|
|
| |
initial_login_retry_max is too short to be useful.
We are getting a lot of login problems due to the
EHOSTUNREACH static ip address, so this patch
increases the default initial_login_retry_max to 45.
|
|
|
|
|
|
|
|
|
|
| |
bnx2i allocates a host per session and iser accesses the
device so we need to pass them a the leading connection
so they can find the hardware that is it bound to.
This also has us call ep_disconnect before calling the stop
conn callout, so these driver do not have to worry about
stopping the receiving path.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you wanted to be able to create multiple session to the same
target portal, then you can now do
iscsiadm -m iface -I iface0 -o new
If you want to, set a binding:
iscsiadm -m iface -I iface0 ....set your binding
repeat iface creation
iscsiadm -m discovery -t st -p ip:port -I iface0 -I iface1 -I ....
or you can create and bind statically
iscsiadm -m node -T my_target -i ip:port,tpgt -I iface0 -I iface1 -I ....
then login like normal. Or you can login/logout of specific ifaces
like with the normal binding.
There is one known bug where discovery is not printing the
portals and binding setup nicely.
|
|
|
|
| |
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now setup the initiator to use multiple initiatornames
which may come in handy for virtualization.
To setup a iface with inames do:
iscsiadm -m iface -o new -I iname0
iscsiadm -m iface -I iname0 -o update -n iface.initiatorname -v "your new name"
Then you can bind and use the interface like you would before.
QUIRK:
Because you can pass in multiple ifaces to the discovery command we
use the default initiator name in /etc/iscsi/initiatorname.iscsi for
the discovery session.
node.transport_name is no longer supported. In the next patches you
will be able to use the default ifaces for these transports.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
| |
These are some updates to the SUSE init scripts, plus a new
boot.open-iscsi script for SUSE. The latter is used for
root on iscsi, to start iscsid as early as possible to
avoid deadlocks on the root fs.
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
|
|
|
|
|
|
| |
While stopping open-iscsi, the initd script removes
the modules by running 'modprobe -r'. The retval of
modprobe must be tested.
Signed-off-by: Doron Shoham <dorons@voltaire.com>
|
|
|
|
| |
The default device qdepth is 32 and not 128.
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now do killall iscsid or iscsiadm -k 0 to stop iscsid.
This should not normally be done, because iscsid is required
for normal initiator behavior. It is mostly for testing, iscsi
boot or system shutdown.
TODO:
- more testing. I am pretty sure the original code is broken. For
exmaple sending a SIGTERM to the log process then the daemon process
will cause semop errors.
|
|
|
|
|
| |
Allow users to change the scsi eh timeout settings
and expose in sysfs.
|
|
|
|
|
|
|
| |
During root boot and shutdown the target could send us nops.
At this time iscsid cannot be running, so the target will drop
the session and the boot or shutdown will hang. This patch
moves the nop handling to the kernel.
|
|
|
|
|
|
|
| |
This patch adds logical unit reset support. It also fixes a bug
where when the session lock is dropped so we can grab
the recv lock, the iscsi eh thread could grab completely clean
up the session. The recv lock would then be a null ptr.
|
| |
|
| |
|
|
|
|
|
| |
condrestart is checking iscsi lock when it should be checking
open-iscsi (iscsi is only used in fedora).
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@865 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@855 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@852 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
targets are not handling it well) and use the iface argument instead of the actual values
git-svn-id: svn://svn.berlios.de/open-iscsi@845 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@826 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
iface (driver and hardware are bound). Also merge the -D and -I arguments so they are now -I driver,hwaddress. Also add some basic qla4xxx support. We can rescan/scan it and perform sendtargets through it but it stores the targets it finds in Flash and then logs into all of them autmatically (when we do discovery and later when reload the driver). So qla4xxx support is mostly to make sure we have the --interfae argument right. We will have to decide how to set other params, manage nodes, and if we should move scanning to the kernel and then also move some error recovery code to the kernel (today qla4xxx is calling block directly and is not able to export it iscsi state yet (the beginnings to fix that is in the git tree but we still need to reduce some code duplcation)). qla4xxx behavior and functionality is going to change as we learn more about the hw (what format the flash data is supposed to be in for example).
git-svn-id: svn://svn.berlios.de/open-iscsi@816 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|