diff --git a/include/iscsi-private.h b/include/iscsi-private.h index aa22a6f..55ad5f2 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -295,7 +295,7 @@ void iscsi_pdu_set_datasn(struct iscsi_pdu *pdu, uint32_t datasn); void iscsi_pdu_set_bufferoffset(struct iscsi_pdu *pdu, uint32_t bufferoffset); int iscsi_pdu_add_data(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, unsigned char *dptr, int dsize); - +int iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); int iscsi_add_data(struct iscsi_context *iscsi, struct iscsi_data *data, unsigned char *dptr, int dsize, int pdualignment); diff --git a/lib/discovery.c b/lib/discovery.c index 349dbd6..0fba3d8 100644 --- a/lib/discovery.c +++ b/lib/discovery.c @@ -80,7 +80,7 @@ iscsi_discovery_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " "text pdu."); iscsi->t->free_pdu(iscsi, pdu); diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index f5930b7..82a8e25 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -129,7 +129,7 @@ iscsi_send_data_out(struct iscsi_context *iscsi, struct iscsi_pdu *cmd_pdu, /* update data segment length */ scsi_set_uint32(&pdu->outdata.data[4], pdu->payload_len); - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " "scsi pdu."); goto error; @@ -280,7 +280,7 @@ iscsi_scsi_command_async(struct iscsi_context *iscsi, int lun, pdu->callback = iscsi_scsi_response_cb; pdu->private_data = &pdu->scsi_cbdata; - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " "scsi pdu."); iscsi->t->free_pdu(iscsi, pdu); diff --git a/lib/libiscsi.def b/lib/libiscsi.def index b22ace8..ac9f2f3 100644 --- a/lib/libiscsi.def +++ b/lib/libiscsi.def @@ -48,6 +48,7 @@ iscsi_preventallow_sync iscsi_preventallow_task iscsi_queue_length iscsi_out_queue_length +iscsi_queue_pdu iscsi_read10_sync iscsi_read10_iov_sync iscsi_read10_task diff --git a/lib/libiscsi.syms b/lib/libiscsi.syms index 7fd5f70..f1c3723 100644 --- a/lib/libiscsi.syms +++ b/lib/libiscsi.syms @@ -46,6 +46,7 @@ iscsi_preventallow_sync iscsi_preventallow_task iscsi_queue_length iscsi_out_queue_length +iscsi_queue_pdu iscsi_read10_sync iscsi_read10_iov_sync iscsi_read10_task diff --git a/lib/login.c b/lib/login.c index 896b691..e24e7ad 100644 --- a/lib/login.c +++ b/lib/login.c @@ -1002,7 +1002,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " "pdu."); iscsi->t->free_pdu(iscsi, pdu); @@ -1319,7 +1319,7 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " "logout pdu."); iscsi->t->free_pdu(iscsi, pdu); diff --git a/lib/nop.c b/lib/nop.c index 639f4c0..d1add06 100644 --- a/lib/nop.c +++ b/lib/nop.c @@ -78,7 +78,7 @@ iscsi_nop_out_async(struct iscsi_context *iscsi, iscsi_command_cb cb, } } - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "failed to queue iscsi nop-out pdu"); iscsi->t->free_pdu(iscsi, pdu); return -1; @@ -122,7 +122,7 @@ iscsi_send_target_nop_out(struct iscsi_context *iscsi, uint32_t ttt, uint32_t lu /* cmdsn is not increased if Immediate delivery*/ iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "failed to queue iscsi nop-out pdu"); iscsi->t->free_pdu(iscsi, pdu); return -1; diff --git a/lib/pdu.c b/lib/pdu.c index ea61b94..c95ef00 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -743,3 +743,9 @@ iscsi_timeout_scan(struct iscsi_context *iscsi) iscsi->t->free_pdu(iscsi, pdu); } } + +int +iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +{ + return iscsi->t->queue_pdu(iscsi, pdu); +} diff --git a/lib/task_mgmt.c b/lib/task_mgmt.c index 37c2e15..6ad3d3b 100644 --- a/lib/task_mgmt.c +++ b/lib/task_mgmt.c @@ -81,7 +81,7 @@ iscsi_task_mgmt_async(struct iscsi_context *iscsi, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi->t->queue_pdu(iscsi, pdu) != 0) { + if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "failed to queue iscsi taskmgmt pdu"); iscsi->t->free_pdu(iscsi, pdu); return -1;