Ronnie Sahlberg
568e4ddfcc
SBC: Add support for WRITESAME16 and add simple tests using it to unmap blocks from a thin provisioned lun
2012-04-28 14:34:47 +10:00
Ronnie Sahlberg
cc0fa15e14
SBC: Add support for WRITESAME10 and a simple test for using writesame10 to unmap blocks from thin provisioned luns
2012-04-28 13:55:37 +10:00
Ronnie Sahlberg
dd5f94b2ca
Add support for UNMAP command and add a simple test for this opcode
2012-04-22 08:09:15 +10:00
Ronnie Sahlberg
d71a9d4f95
Add support for BLOCK LIMITS VPD page
...
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com >
2012-04-20 17:57:40 +10:00
Ronnie Sahlberg
86bf89aabf
Add support for READCAPACITY16
...
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com >
2012-04-20 17:56:39 +10:00
Ronnie Sahlberg
422bc32ce8
Add support for INQUIRY LOGICAL_BLOCK_PROVISIONING page
...
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com >
2012-04-19 20:09:14 +10:00
Ronnie Sahlberg
50594830bd
Task Management. When we abort a task or a task set, or reset the lun or target
...
we must also cancel all active tasks.
This will trigger all affected tasks to have their callback invoked with
SCSI_STATUS_CANCELLED
2012-03-10 12:12:47 +11:00
Ronnie Sahlberg
cff996a96d
VERIFY10: Add support for VERIFY10. Also add a simple test for verify10
2012-01-26 15:47:14 +11:00
Ronnie Sahlberg
6ecf536e86
Rename a varialbe to get rid of compiler warning
2011-12-31 10:31:23 +11:00
Ronnie Sahlberg
114c81390f
Remove unused variable
2011-12-31 10:29:41 +11:00
Ronnie Sahlberg
d486d466c8
Cast an expression to get rid of a compiler warning
2011-12-31 10:28:34 +11:00
Ronnie Sahlberg
f4223d96c7
Remove unused variable
2011-12-31 10:26:43 +11:00
Ronnie Sahlberg
626734e52f
Remove an unused variable
2011-12-31 10:25:52 +11:00
Ronnie Sahlberg
8e7e29a52b
Remove an unused variable
2011-12-31 10:24:37 +11:00
Ronnie Sahlberg
7b9bdaafb1
TMGMT: dont hardcode the lun we send to to 2, use the lun that is passed in as argument
2011-12-19 15:43:27 +11:00
Ronnie Sahlberg
9bfc3f095d
Logout processing is a bit broken since it does not update the cmdsn properly
...
Copy the code to initialize the cmdsn and expstatsn from nop.c
2011-10-16 13:58:07 +11:00
Ronnie Sahlberg
2f23773390
add sync write10
2011-09-29 22:01:53 +10:00
Paolo Bonzini
217bf6f53e
fix warning from -Wswitch
2011-09-21 12:01:39 +02:00
Paolo Bonzini
a1975e90f6
fix warning from -Wuninitialized
2011-09-21 12:00:20 +02:00
Paolo Bonzini
c940381b59
fix warning from -Wsign-compare
2011-09-21 11:51:36 +02:00
Ronnie Sahlberg
3c11c3598b
Add a function to cancel a scsi task from libiscsi.
2011-09-19 21:21:40 +10:00
Ronnie Sahlberg
a974e8efe1
When a scsi task / pdu has been cancelled, pass back SCSI_STATUS_CANCELLED to the task callback and not default to SCSI_STATUS_ERROR
2011-09-19 21:12:32 +10:00
Ronnie Sahlberg
0a9049ad65
remove debug messages
2011-09-10 14:02:22 +10:00
Ronnie Sahlberg
49017fda58
OpenSolaris: Add support for opensolaris
2011-09-01 18:04:29 +10:00
Ronnie Sahlberg
c3d3123981
Windows: Add support to build as a DLL under windows
2011-08-31 13:12:30 +10:00
Ronnie Sahlberg
0be42c8833
If an application specifies zero-copy read-buffers to read the data into
...
for a read10 call, the application might have specified too few buffers
for the full I/O.
For example if the application tries to read just 512 bytes off a MMC device.
In this case we wopuld run out of buffers and fail with a SEGV.
Instead of failing like this, return NULL from the function to locate a suitable buffer and read the remaining data from the command into the callback buffer instead, just like when no read-buffer at all has been specified.
2011-06-12 10:44:31 +10:00
Ronnie Sahlberg
de97dbdde8
start implementing mode page unmarshalling
2011-04-23 14:02:59 +10:00
Ronnie Sahlberg
3a39201543
Add 'zero-copy' in libiscsi for reads.
...
It is not real zero-copy since the data is still copied in the kernel,
but it avoids copying the data inside libiscsi as well as in the callback.
For SCSI tasks that will return data from the target, the application can now
specify application buffers for libiscsi to read the data directly into.
This is done by calling scsi_task_add_data_in_buffer(task, ...
These buffers need not be linear, you can specify different areas to read into
by calling this function several times.
See examples/iscsiclient.c for an example.
2011-04-20 05:46:17 +10:00
Ronnie Sahlberg
7fe457cea8
We can get over/underflow residuals in a DATA-IN segment if/when the S bit is set too.
2011-04-18 17:31:47 +10:00
Ronnie Sahlberg
3a29351dac
Read out the residual count correctly from the scsi reply
2011-04-16 16:28:40 +10:00
Ronnie Sahlberg
4551b01104
compiler warning about unusued variable
2011-04-16 16:28:30 +10:00
Ronnie Sahlberg
024f7dc94e
In iscsi_scsi_response_cb()
...
dont pick task up from the argument, since this callback can be invoked
from places where we dont have/know the task strucutre and it is thus NULL.
Instead pick it up from scsi_cbstruct.
This prevents a SEGV when processing REJECT to SCSI commands.
(the scsi command callback dereferences the task pointer)
2011-04-16 13:51:32 +10:00
Ronnie Sahlberg
49dd0fb8b3
Add definition of INVALID OPERATION CODE asqc
2011-04-16 09:55:48 +10:00
Ronnie Sahlberg
07ad0572f2
Add support for READ6
2011-04-16 08:06:16 +10:00
Ronnie Sahlberg
b6782dd7c8
TCP KEEPALIVE support
...
Add tcp keeplaive support on platforms that support these socket options.
Set default to fail the socket after 120 seconds
2011-04-13 21:37:28 +10:00
Ronnie Sahlberg
ef846b0f30
Target initiated NOP:
...
Initial support to try to respond to target initiated NOPs.
2011-04-10 15:33:42 +10:00
Ronnie Sahlberg
cfe19486ee
Add RESERVATION CONFLICT
...
From Richard Sharpe, add support to handle when a target responds with
RESERVATION CONFLICT to a scsi i/o
2011-04-09 12:00:10 +10:00
Ronnie Sahlberg
bceb3d058d
TYPO: fix error strings to "trying TO send ..."
2011-04-06 17:47:55 +10:00
Ronnie Sahlberg
e93ad2f039
Fix a cut-n-paste typo in an error message
2011-04-05 12:24:59 +10:00
Ronnie Sahlberg
1a5f267b1d
WRITE10: Set W bit to 1 only if we write data, i.e. number of blocks are >0
2011-04-04 18:47:32 +10:00
Ronnie Sahlberg
e7300bfb8b
READ10: only set R flag in iscsi if we are reading >0 blocks.
...
If we are reading 0 blocks, the R flag should be clear
2011-04-04 18:34:38 +10:00
Ronnie Sahlberg
5225b5fa66
Add definitions for ASCQ LBA-OUT-OF-RANGE
2011-04-04 17:40:13 +10:00
Ronnie Sahlberg
376f60fc06
Use ioctl(FIONREAD) to determine how many bytes are readable in the socket
...
and make sure we dont try to read mor than that.
2011-04-03 07:22:05 +10:00
Ronnie Sahlberg
4979b7346f
From Richard Sharpe
...
Add a mechanism where residual overflow/underflow can be reportad back to
the application
We probably need somethinf for bidir residuals at some stage too
2011-03-27 19:27:10 +11:00
Ronnie Sahlberg
343d86dca7
get rid of the _async() scsi functions.
...
We dotn need two interfaces that only diuffer in whether they return a pointer or NULL vs an semiidentical interface that returns 0 or <0
All uses of _async() for scsi tasks should be replaced with the equivalent _task() function instead
2011-03-27 18:17:12 +11:00
Ronnie Sahlberg
f4f6ef5033
change dont automatically free the scsi_task once the callback completes.
...
Freeing the scsi_task structure is the responsibility of the application
to either do so during the callback, or later.
2011-03-27 17:53:05 +11:00
Ronnie Sahlberg
4e6e39ee23
Support for REJECT PDUs.
2011-02-27 13:49:49 +11:00
Ronnie Sahlberg
76208e1eff
Rename the _send() functions to _task()
...
These functions are also async functions for SCSI commands but they return
a task structure or NULL.
This task structure can be used in task management functions to abort the task or a whole task set.
2011-02-27 10:29:51 +11:00
Ronnie Sahlberg
bdbf6b5d00
Dont free the scsi task from iscsi_scsi_command_async(), leave that for the caller to do if required.
2011-02-25 15:53:56 +11:00
Ronnie Sahlberg
356a6571bb
Login: remember what the TargetAddress returned during login is so we can
...
handle redirect 'errors'.
2011-02-25 15:35:49 +11:00