iscsi_queue_pdu() can never fail, make it void
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
10
lib/iser.c
10
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
14
lib/login.c
14
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;
|
||||
}
|
||||
|
||||
12
lib/nop.c
12
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)",
|
||||
|
||||
10
lib/pdu.c
10
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user