diff --git a/include/iscsi-private.h b/include/iscsi-private.h index ec1b85e..bc23b38 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -344,10 +344,11 @@ void iscsi_cancel_pdus(struct iscsi_context *iscsi); void iscsi_cancel_lun_pdus(struct iscsi_context *iscsi, uint32_t lun); int iscsi_pdu_add_data(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, const unsigned char *dptr, int dsize); -int iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); +void iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); int iscsi_add_data(struct iscsi_context *iscsi, struct iscsi_data *data, const unsigned char *dptr, int dsize, int pdualignment); +void iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); struct scsi_task; void iscsi_pdu_set_cdb(struct iscsi_pdu *pdu, struct scsi_task *task); @@ -417,9 +418,6 @@ void iscsi_decrement_iface_rr(void); void __attribute__((format(printf, 3, 4))) iscsi_log_message(struct iscsi_context *iscsi, int level, const char *format, ...); -void -iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); - int iscsi_serial32_compare(uint32_t s1, uint32_t s2); uint32_t iscsi_itt_post_increment(struct iscsi_context *iscsi); @@ -443,7 +441,7 @@ union socket_address; typedef struct iscsi_transport { int (*connect)(struct iscsi_context *iscsi, union socket_address *sa, int ai_family); - int (*queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); + void (*queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); struct iscsi_pdu* (*new_pdu)(struct iscsi_context *iscsi, size_t size); int (*disconnect)(struct iscsi_context *iscsi); void (*free_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); diff --git a/lib/discovery.c b/lib/discovery.c index d785ca8..4518498 100644 --- a/lib/discovery.c +++ b/lib/discovery.c @@ -73,12 +73,7 @@ iscsi_discovery_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " - "text pdu."); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); return 0; } diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index d218060..047cd8f 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -128,12 +128,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_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " - "scsi pdu."); - iscsi->drv->free_pdu(iscsi, pdu); - goto error; - } + iscsi_queue_pdu(iscsi, pdu); tot_len -= len; offset += len; @@ -280,12 +275,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_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " - "scsi pdu."); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); iscsi->cmdsn++; /* The F flag is not set. This means we haven't sent all the unsolicited diff --git a/lib/iser.c b/lib/iser.c index 4e062d8..025bf6b 100644 --- a/lib/iser.c +++ b/lib/iser.c @@ -982,27 +982,27 @@ iscsi_iser_revive_queued_pdus(struct iscsi_context *iscsi) { * Need to be compatible to TCP which has real queue, * in iSER pdus with cmdsn not exceeds maxcmdsn are already sent. */ -static int +static void iscsi_iser_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { if (pdu == NULL) { iscsi_set_error(iscsi, "trying to queue NULL pdu"); - return -1; + return; } if (pdu->outdata.data[0] == ISCSI_PDU_NOP_OUT && iscsi_iser_cm_event(iscsi) != 0) { iscsi_service_reconnect_if_loggedin(iscsi); - return -1; + return; } if (iscsi->outqueue != NULL || (iscsi_serial32_compare(pdu->cmdsn, iscsi->maxcmdsn) > 0 && !(pdu->outdata.data[0] & ISCSI_PDU_IMMEDIATE))) { iscsi_add_to_outqueue(iscsi, pdu); - return 0; + return; } - return iscsi_iser_send_pdu(iscsi, pdu); + iscsi_iser_send_pdu(iscsi, pdu); } diff --git a/lib/login.c b/lib/login.c index cd91429..120c8c2 100644 --- a/lib/login.c +++ b/lib/login.c @@ -1236,12 +1236,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " - "pdu."); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); return 0; } @@ -1587,12 +1582,7 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi " - "logout pdu."); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); return 0; } diff --git a/lib/nop.c b/lib/nop.c index 2c1391a..e59f169 100644 --- a/lib/nop.c +++ b/lib/nop.c @@ -77,11 +77,7 @@ iscsi_nop_out_async(struct iscsi_context *iscsi, iscsi_command_cb cb, } } - if (iscsi_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "failed to queue iscsi nop-out pdu"); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); iscsi->cmdsn++; iscsi->nops_in_flight++; @@ -122,11 +118,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_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "failed to queue iscsi nop-out pdu"); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); ISCSI_LOG(iscsi, (iscsi->nops_in_flight > 1) ? 1 : 6, "NOP Out Send (nops_in_flight: %d, pdu->cmdsn %08x, pdu->itt %08x, pdu->ttt %08x, pdu->lun %8x, iscsi->maxcmdsn %08x, iscsi->expcmdsn %08x)", diff --git a/lib/pdu.c b/lib/pdu.c index 68e8a20..935972a 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -937,16 +937,10 @@ iscsi_timeout_scan(struct iscsi_context *iscsi) } } -int +void iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { - int ret; - - iscsi_mt_mutex_lock(&iscsi->iscsi_mutex); - ret = iscsi->drv->queue_pdu(iscsi, pdu); - iscsi_mt_mutex_unlock(&iscsi->iscsi_mutex); - - return ret; + iscsi->drv->queue_pdu(iscsi, pdu); } void diff --git a/lib/socket.c b/lib/socket.c index 21f4ae3..ce10811 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -1136,17 +1136,10 @@ iscsi_service(struct iscsi_context *iscsi, int revents) return iscsi->drv->service(iscsi, revents); } -static int iscsi_tcp_queue_pdu(struct iscsi_context *iscsi, +static void iscsi_tcp_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { - if (pdu == NULL) { - iscsi_set_error(iscsi, "trying to queue NULL pdu"); - return -1; - } - iscsi_add_to_outqueue(iscsi, pdu); - - return 0; } void diff --git a/lib/task_mgmt.c b/lib/task_mgmt.c index f3e6824..c63fffb 100644 --- a/lib/task_mgmt.c +++ b/lib/task_mgmt.c @@ -80,11 +80,7 @@ iscsi_task_mgmt_async(struct iscsi_context *iscsi, pdu->callback = cb; pdu->private_data = private_data; - if (iscsi_queue_pdu(iscsi, pdu) != 0) { - iscsi_set_error(iscsi, "failed to queue iscsi taskmgmt pdu"); - iscsi->drv->free_pdu(iscsi, pdu); - return -1; - } + iscsi_queue_pdu(iscsi, pdu); return 0; } diff --git a/test-tool/iscsi-test-cu.c b/test-tool/iscsi-test-cu.c index 4e14913..e8b5aa0 100644 --- a/test-tool/iscsi-test-cu.c +++ b/test-tool/iscsi-test-cu.c @@ -739,7 +739,7 @@ static struct test_family families[] = { */ struct scsi_task *task; unsigned char *read_write_buf; -int (*orig_queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); +void (*orig_queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); static void print_usage(void) diff --git a/test-tool/iscsi-test-cu.h b/test-tool/iscsi-test-cu.h index 0b9ad08..fd230cb 100644 --- a/test-tool/iscsi-test-cu.h +++ b/test-tool/iscsi-test-cu.h @@ -35,8 +35,8 @@ /* globals between setup, tests, and teardown */ extern struct scsi_task *task; extern unsigned char *read_write_buf; -extern int (*orig_queue_pdu)(struct iscsi_context *iscsi, - struct iscsi_pdu *pdu); +extern void (*orig_queue_pdu)(struct iscsi_context *iscsi, + struct iscsi_pdu *pdu); #ifndef HAVE_CU_SUITEINFO_PSETUPFUNC /* libcunit version 1 */ diff --git a/test-tool/test_compareandwrite_invalid_dataout_size.c b/test-tool/test_compareandwrite_invalid_dataout_size.c index dfac65d..940cd43 100644 --- a/test-tool/test_compareandwrite_invalid_dataout_size.c +++ b/test-tool/test_compareandwrite_invalid_dataout_size.c @@ -28,13 +28,13 @@ static int new_nlb = -1; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { if (pdu->outdata.data[0] != ISCSI_PDU_SCSI_REQUEST && new_nlb >= 0) { /* change NUMBER OF LOGICAL BLOCKS to new_nlb */ pdu->outdata.data[32 + 13] = new_nlb; } - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void diff --git a/test-tool/test_iscsi_chap.c b/test-tool/test_iscsi_chap.c index 57668e0..8dfbd41 100644 --- a/test-tool/test_iscsi_chap.c +++ b/test-tool/test_iscsi_chap.c @@ -77,7 +77,7 @@ test_iscsi_strip_tag(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, return 0; } -static int +static void chap_mod_strip_replace_queue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, const char *new_chap_a) { @@ -93,41 +93,41 @@ chap_mod_strip_replace_queue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, goto out; } if (ret < 0) { - return ret; + return; } ret = iscsi_pdu_add_data(iscsi, pdu, (const unsigned char *)new_chap_a, strlen(new_chap_a) + 1); if (ret < 0) { - return ret; + return; } logging(LOG_VERBOSE, "replaced Login PDU CHAP_A setting with %s", new_chap_a); out: - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } -static int +static void chap_mod_many_types_queue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { - return chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A=5,6,7,8"); + chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A=5,6,7,8"); } -static int +static void chap_mod_no_type_queue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { - return chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A="); + chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A="); } -static int +static void chap_mod_bad_type_queue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { /* value starts with '5', to catch targets that only check one byte */ - return chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A=56"); + chap_mod_strip_replace_queue(iscsi, pdu, "CHAP_A=56"); } static int -test_iscsi_chap_login(int (*test_queue_pdu)(struct iscsi_context *iscsi, - struct iscsi_pdu *pdu)) +test_iscsi_chap_login(void (*test_queue_pdu)(struct iscsi_context *iscsi, + struct iscsi_pdu *pdu)) { struct iscsi_context *iscsi; struct iscsi_url *iscsi_url; diff --git a/test-tool/test_iscsi_cmdsn_toohigh.c b/test-tool/test_iscsi_cmdsn_toohigh.c index 8d56e1f..7ba094c 100644 --- a/test-tool/test_iscsi_cmdsn_toohigh.c +++ b/test-tool/test_iscsi_cmdsn_toohigh.c @@ -26,7 +26,7 @@ static int change_cmdsn; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { switch (change_cmdsn) { case 1: @@ -45,7 +45,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu } change_cmdsn = 0; - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_iscsi_cmdsn_toohigh(void) diff --git a/test-tool/test_iscsi_cmdsn_toolow.c b/test-tool/test_iscsi_cmdsn_toolow.c index 652f645..75f380b 100644 --- a/test-tool/test_iscsi_cmdsn_toolow.c +++ b/test-tool/test_iscsi_cmdsn_toolow.c @@ -26,7 +26,7 @@ static int change_cmdsn; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { switch (change_cmdsn) { case 1: @@ -45,7 +45,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu } change_cmdsn = 0; - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_iscsi_cmdsn_toolow(void) diff --git a/test-tool/test_iscsi_datasn_invalid.c b/test-tool/test_iscsi_datasn_invalid.c index 9afaf50..b468cc0 100644 --- a/test-tool/test_iscsi_datasn_invalid.c +++ b/test-tool/test_iscsi_datasn_invalid.c @@ -26,7 +26,7 @@ static int change_datasn; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { uint32_t datasn; @@ -57,7 +57,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu break; } out: - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_iscsi_datasn_invalid(void) diff --git a/test-tool/test_iscsi_sendtargets.c b/test-tool/test_iscsi_sendtargets.c index e7a1892..30030e7 100644 --- a/test-tool/test_iscsi_sendtargets.c +++ b/test-tool/test_iscsi_sendtargets.c @@ -148,8 +148,7 @@ test_iscsi_text_req_queue(struct iscsi_context *iscsi, pdu->callback = cb; pdu->private_data = state; - ret = iscsi_queue_pdu(iscsi, pdu); - CU_ASSERT_EQUAL_FATAL(ret, 0); + iscsi_queue_pdu(iscsi, pdu); state->dispatched++; logging(LOG_VERBOSE, "queued Text request %d with %s", state->dispatched, kv_data); diff --git a/test-tool/test_sanitize_block_erase_reserved.c b/test-tool/test_sanitize_block_erase_reserved.c index 43a7c0c..6bff892 100644 --- a/test-tool/test_sanitize_block_erase_reserved.c +++ b/test-tool/test_sanitize_block_erase_reserved.c @@ -26,7 +26,7 @@ static int change_num; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { switch (change_num) { case 1: @@ -44,7 +44,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu } change_num = 0; - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_sanitize_block_erase_reserved(void) diff --git a/test-tool/test_sanitize_crypto_erase_reserved.c b/test-tool/test_sanitize_crypto_erase_reserved.c index 7b71019..c8291b6 100644 --- a/test-tool/test_sanitize_crypto_erase_reserved.c +++ b/test-tool/test_sanitize_crypto_erase_reserved.c @@ -26,7 +26,7 @@ static int change_num; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { switch (change_num) { case 1: @@ -44,7 +44,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu } change_num = 0; - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_sanitize_crypto_erase_reserved(void) diff --git a/test-tool/test_sanitize_overwrite_reserved.c b/test-tool/test_sanitize_overwrite_reserved.c index c45a6f5..c5c36c4 100644 --- a/test-tool/test_sanitize_overwrite_reserved.c +++ b/test-tool/test_sanitize_overwrite_reserved.c @@ -27,7 +27,7 @@ static int change_num; -static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +static void my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) { switch (change_num) { case 1: @@ -45,7 +45,7 @@ static int my_iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu } change_num = 0; - return orig_queue_pdu(iscsi, pdu); + orig_queue_pdu(iscsi, pdu); } void test_sanitize_overwrite_reserved(void)