Add more status codes : CONDITIONS_MET/TASK_SET_FULL/ACA_ACTIVE/TASK_ABORTED
This commit is contained in:
@@ -275,8 +275,12 @@ EXTERN int iscsi_is_logged_in(struct iscsi_context *iscsi);
|
|||||||
enum scsi_status {
|
enum scsi_status {
|
||||||
SCSI_STATUS_GOOD = 0,
|
SCSI_STATUS_GOOD = 0,
|
||||||
SCSI_STATUS_CHECK_CONDITION = 2,
|
SCSI_STATUS_CHECK_CONDITION = 2,
|
||||||
|
SCSI_STATUS_CONDITION_MET = 4,
|
||||||
SCSI_STATUS_BUSY = 8,
|
SCSI_STATUS_BUSY = 8,
|
||||||
SCSI_STATUS_RESERVATION_CONFLICT = 0x18,
|
SCSI_STATUS_RESERVATION_CONFLICT = 0x18,
|
||||||
|
SCSI_STATUS_TASK_SET_FULL = 0x28,
|
||||||
|
SCSI_STATUS_ACA_ACTIVE = 0x30,
|
||||||
|
SCSI_STATUS_TASK_ABORTED = 0x40,
|
||||||
SCSI_STATUS_REDIRECT = 0x101,
|
SCSI_STATUS_REDIRECT = 0x101,
|
||||||
SCSI_STATUS_CANCELLED = 0x0f000000,
|
SCSI_STATUS_CANCELLED = 0x0f000000,
|
||||||
SCSI_STATUS_ERROR = 0x0f000001,
|
SCSI_STATUS_ERROR = 0x0f000001,
|
||||||
|
|||||||
@@ -50,6 +50,10 @@ iscsi_scsi_response_cb(struct iscsi_context *iscsi, int status,
|
|||||||
case SCSI_STATUS_CHECK_CONDITION:
|
case SCSI_STATUS_CHECK_CONDITION:
|
||||||
case SCSI_STATUS_GOOD:
|
case SCSI_STATUS_GOOD:
|
||||||
case SCSI_STATUS_BUSY:
|
case SCSI_STATUS_BUSY:
|
||||||
|
case SCSI_STATUS_CONDITION_MET:
|
||||||
|
case SCSI_STATUS_TASK_SET_FULL:
|
||||||
|
case SCSI_STATUS_ACA_ACTIVE:
|
||||||
|
case SCSI_STATUS_TASK_ABORTED:
|
||||||
case SCSI_STATUS_ERROR:
|
case SCSI_STATUS_ERROR:
|
||||||
case SCSI_STATUS_CANCELLED:
|
case SCSI_STATUS_CANCELLED:
|
||||||
scsi_cbdata->callback(iscsi, status, scsi_cbdata->task,
|
scsi_cbdata->callback(iscsi, status, scsi_cbdata->task,
|
||||||
@@ -381,6 +385,7 @@ iscsi_process_scsi_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu,
|
|||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case SCSI_STATUS_GOOD:
|
case SCSI_STATUS_GOOD:
|
||||||
|
case SCSI_STATUS_CONDITION_MET:
|
||||||
task->datain.data = pdu->indata.data;
|
task->datain.data = pdu->indata.data;
|
||||||
task->datain.size = pdu->indata.size;
|
task->datain.size = pdu->indata.size;
|
||||||
|
|
||||||
@@ -448,6 +453,21 @@ iscsi_process_scsi_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu,
|
|||||||
pdu->callback(iscsi, SCSI_STATUS_RESERVATION_CONFLICT,
|
pdu->callback(iscsi, SCSI_STATUS_RESERVATION_CONFLICT,
|
||||||
task, pdu->private_data);
|
task, pdu->private_data);
|
||||||
break;
|
break;
|
||||||
|
case SCSI_STATUS_TASK_SET_FULL:
|
||||||
|
iscsi_set_error(iscsi, "TASK_SET_FULL");
|
||||||
|
pdu->callback(iscsi, SCSI_STATUS_TASK_SET_FULL,
|
||||||
|
task, pdu->private_data);
|
||||||
|
break;
|
||||||
|
case SCSI_STATUS_ACA_ACTIVE:
|
||||||
|
iscsi_set_error(iscsi, "ACA_ACTIVE");
|
||||||
|
pdu->callback(iscsi, SCSI_STATUS_ACA_ACTIVE,
|
||||||
|
task, pdu->private_data);
|
||||||
|
break;
|
||||||
|
case SCSI_STATUS_TASK_ABORTED:
|
||||||
|
iscsi_set_error(iscsi, "TASK_ABORTED");
|
||||||
|
pdu->callback(iscsi, SCSI_STATUS_TASK_ABORTED,
|
||||||
|
task, pdu->private_data);
|
||||||
|
break;
|
||||||
case SCSI_STATUS_BUSY:
|
case SCSI_STATUS_BUSY:
|
||||||
iscsi_set_error(iscsi, "BUSY");
|
iscsi_set_error(iscsi, "BUSY");
|
||||||
pdu->callback(iscsi, SCSI_STATUS_BUSY,
|
pdu->callback(iscsi, SCSI_STATUS_BUSY,
|
||||||
|
|||||||
Reference in New Issue
Block a user