mav
f83f810204
Allow WRITE SAME with NDOB bit set but without UNMAP.
...
This combination was originally forbidden, but allowed at spc4r3.
2015-09-24 15:59:08 +00:00
mav
661d29ba49
Add new report types to REPORT LUNS command.
...
This is only for completeness, since we have nothing new to report there.
2015-09-24 12:22:47 +00:00
mav
9e5012814b
Update WRITE ATOMIC(16) support to sbc4r8 draft.
...
This is only a cosmetic change. We still don't support atomic boundary
field in the CDB, but at least now we do it formally.
2015-09-24 08:04:47 +00:00
mav
09cbc1126e
Add support for READ BUFFER(16) command.
2015-09-24 07:16:34 +00:00
mav
4c00714c1f
Synchronize mode pages between HA peers.
...
We allow to modify only few fields in mode pages now, but still it is
not good if they unexpectedly change during failover. Also this fixes
reporting of "Mode parameters changed" UAs on secondary node.
2015-09-23 18:33:00 +00:00
mav
6711ffe0ce
Make HA peers announce their parameters on connect.
...
HA protocol requires strict version, parameters and configuration match.
Differences there may cause full set of problems up to kernel panic.
To avoid that, validate peer parameters on connect, and abort connection
immediately if some mismatch detected.
2015-09-23 15:49:27 +00:00
mav
35d91751bd
Add support for Control extension mode page.
2015-09-22 14:55:46 +00:00
mav
04e2dfaaea
Remove duplicate and incomplete code handling LUN modify.
...
Instead reuse code from LUN creation. This allows most of LUN media
options to be changed live with modify request without full restart.
2015-09-22 10:45:50 +00:00
mav
6fb47d3576
Log iSCSI session reinstatements.
...
False session reinstatements can be result of misconfiguration, when
several initiators use the same initiator name and ISID.
2015-09-21 13:25:29 +00:00
mav
089bfb2bd5
Mark with DMA flag I/Os waiting for iSCSI write data after R2T.
...
Reads and immediate writes are not blocking, so don't bother.
2015-09-20 11:39:19 +00:00
mav
6e8a812631
Remove couple excess SGLIST I/O flags.
...
Those flags duplicated respective (sg_entries > 0) values.
2015-09-20 10:40:30 +00:00
mav
ce8faf1ce9
Always execute REPORT LUNS and REQUEST SENSE commands locally.
...
REPORT LUNS command is more related to target rather then specific LUN.
This node may be primary for LUNs for some reason unknown to another,
and command forwarded to another node won't be able to report them.
REQUEST SENSE is related to LUN, but in our implementation it reports
only UAs and CAs, that are stored locally rather then on primary node.
2015-09-19 19:30:55 +00:00
mav
5c7a1c36c1
Split two command flags with different meaning.
...
This is only a cosmetical change.
2015-09-19 19:11:59 +00:00
mav
9435d43b5b
Pack struct ctl_ha_msg_hdr by 8 bytes.
2015-09-19 18:23:06 +00:00
mav
b5750fe77b
Fix memory corruption when >128K transferred through HA link.
...
While there, do some cleaning.
2015-09-19 13:12:09 +00:00
mav
02db1cf02c
Mark I/Os with DMA flag while moving data through the HA link.
2015-09-18 20:11:10 +00:00
mav
d696fece47
Relax serseq option operation for reads.
...
Previously, with serseq enabled, next command was unblocked only after
previous completed. With this change, for read operations, next command
is unblocked as soon as last media read completed. This is important
for frontends that actually wait for data move completion (like camtgt),
or when data are moved through the HA link, or especially when both.
2015-09-18 19:43:14 +00:00
mav
6c4148c76b
Kill HA link and shutdown the threads on shutdown.
2015-09-18 12:08:00 +00:00
mav
39b362d735
Update list of opcodes to 5/26/15.
2015-09-18 10:44:25 +00:00
mav
48d608e93d
Update list of ASC/ASCQ codes from 5/20/12 to 8/12/15.
2015-09-18 10:23:17 +00:00
mav
e2cbfa7ae4
Replicate initiators WWPNs and names between HA peers.
2015-09-17 21:51:11 +00:00
mav
7d2c7a2790
Replicate port->init_devid to HA peer.
2015-09-17 20:36:34 +00:00
mav
5168f6a6d2
When reporting TPT UA, report which of thresholds was reached.
2015-09-17 17:00:36 +00:00
mav
a09fd181e0
Report number of failed XCOPY segment.
2015-09-17 14:22:52 +00:00
mav
c83e5e51a7
Report proper medium error code for VERIFY commands.
2015-09-17 12:52:18 +00:00
mav
5cd19bff79
Fix reading after end of file for file-backed LUNs.
...
If backing file is smaller then the LUN size, we have to explicitly clear
the rest of the buffer to not leak some random data from previous I/Os.
2015-09-16 21:43:51 +00:00
mav
319baa7ea6
Make COMPARE AND WRITE report offset of difference.
2015-09-16 18:33:04 +00:00
mav
a2e99dcb40
Fix fixed sense writing when passed more data then it can fit.
...
MFC after: 1 week
2015-09-16 17:56:24 +00:00
mav
1391356f66
Frontends don't need to set errors themselves.
2015-09-16 13:25:35 +00:00
mav
32d95a60aa
Don't flap the HA link if sysctl is reset to the same value.
2015-09-16 09:59:05 +00:00
mav
b533e5b8f6
Make CAM log errors that make it wait.
...
Waiting can take minutes, and it would be good for user to know what is
going on.
MFC after: 2 weeks
2015-09-15 10:57:16 +00:00
mav
ff7a796ad3
Fix completion/error status reporting.
2015-09-15 10:42:53 +00:00
mav
6bfadefc07
Close potential race between datamove and HA failover.
2015-09-15 09:36:46 +00:00
markj
67708eb40c
Preserve the device queue status before retrying a sense request in
...
chdone(). Previously, the retry could clear the CAM_DEV_QFRZN bit in the
CCB status, leaving the queue frozen.
Submitted by: Jeff Miller <Jeff.Miller@isilon.com>
Reviewed by: ken
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
2015-09-15 05:09:17 +00:00
mav
183453ee1f
Implement data/status aggregation for secondary HA node.
...
For short read requests this reduces latency by 30%, reporting command
completion after two interlink roundtrips instead of full three.
2015-09-14 15:21:23 +00:00
mav
562710b276
Implement data/status aggregation for camsim backend.
...
This is almost pointless for primary HA node, but useful for secondary,
where between fe_datamove and fe_done calls goes another link roundtrip.
2015-09-14 15:15:32 +00:00
mav
d119065944
Remove CTL_PRIV_LBA_LEN from HA messages.
...
Previously it was used for statistics, but now just a 16 extra bytes.
2015-09-14 09:56:01 +00:00
mav
b48d2e5828
Implement QUERY TASK, QUERY TASK SET and QUERY ASYNC EVENT.
...
Now we support most of SAM-5 task management.
2015-09-14 08:01:05 +00:00
mav
29816fedba
Map CLEAR TASK SET and I_T NEXUS RESET for iSCSI.
...
The last should not be called without iSCSIProtocolLevel negotiation.
2015-09-13 20:40:00 +00:00
mav
ec9abd30ae
Implement iSCSI TARGET COLD RESET task management function.
...
Implement it as CTL_TASK_TARGET_RESET plus termination of all sessions.
2015-09-13 20:22:18 +00:00
mav
169f852b1d
Improve read-only support.
2015-09-13 16:49:41 +00:00
mav
b61b12e919
Reannounce port to HA peer if LUN map changed after online.
2015-09-13 15:31:55 +00:00
mav
9f330a7e28
Report INQUIRY DATA HAS CHANGED for related LUNs on port on-/offline.
2015-09-13 14:52:31 +00:00
mav
a0c6a9234d
Report CTL_UA_LUN_CHANGE on LUN map change.
2015-09-13 14:04:42 +00:00
mav
415ebdc1a8
Make TARGET RESET respect LUN mapping.
2015-09-13 13:00:20 +00:00
mav
194fd9ab33
Check for obsolete NUL bin in CSCD descriptor.
2015-09-12 20:45:09 +00:00
mav
7947a17ff4
Add HA support for CTL_TASK_I_T_NEXUS_RESET.
2015-09-12 20:06:22 +00:00
mav
7e1a392c4c
Fix false CTL_UA_RES_RELEASE on secondary HA node.
2015-09-12 18:29:05 +00:00
mav
7cbc0c158c
Decode WRITE ATOMIC(16) command.
2015-09-12 17:53:49 +00:00
mav
0783650561
Improve XCOPY error reporting.
2015-09-12 16:30:01 +00:00