target/iscsi: Misc cleanups from Agrover (round 2)
This patch includes the handful of squashed patches for target/iscsi from Andy's original series into lio-core/master code: *) Make iscsit_add_reject static *) Remove unused data_offset_end from iscsi_datain_req *) Remove "#if 0" stubs *) Rename iscsi_datain_req to cmd_datain_node *) Cleanups for built_r2ts_for_cmd() *) Cleanups for Cleanup build_sendtargets_response() Signed-off-by: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
6f3c0e69a9
commit
8b1e1244db
|
@ -593,7 +593,7 @@ static void __exit iscsi_target_cleanup_module(void)
|
|||
kfree(iscsit_global);
|
||||
}
|
||||
|
||||
int iscsit_add_reject(
|
||||
static int iscsit_add_reject(
|
||||
u8 reason,
|
||||
int fail_conn,
|
||||
unsigned char *buf,
|
||||
|
@ -1442,7 +1442,7 @@ static int iscsit_handle_data_out(struct iscsi_conn *conn, unsigned char *buf)
|
|||
return 0;
|
||||
else if (ret == DATAOUT_SEND_R2T) {
|
||||
iscsit_set_dataout_sequence_values(cmd);
|
||||
iscsit_build_r2ts_for_cmd(cmd, conn, 0);
|
||||
iscsit_build_r2ts_for_cmd(cmd, conn, false);
|
||||
} else if (ret == DATAOUT_SEND_TO_TRANSPORT) {
|
||||
/*
|
||||
* Handle extra special case for out of order
|
||||
|
@ -2950,15 +2950,13 @@ static int iscsit_send_r2t(
|
|||
}
|
||||
|
||||
/*
|
||||
* type 0: Normal Operation.
|
||||
* type 1: Called from Storage Transport.
|
||||
* type 2: Called from iscsi_task_reassign_complete_write() for
|
||||
* connection recovery.
|
||||
* @recovery: If called from iscsi_task_reassign_complete_write() for
|
||||
* connection recovery.
|
||||
*/
|
||||
int iscsit_build_r2ts_for_cmd(
|
||||
struct iscsi_cmd *cmd,
|
||||
struct iscsi_conn *conn,
|
||||
int type)
|
||||
bool recovery)
|
||||
{
|
||||
int first_r2t = 1;
|
||||
u32 offset = 0, xfer_len = 0;
|
||||
|
@ -2969,27 +2967,33 @@ int iscsit_build_r2ts_for_cmd(
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (conn->sess->sess_ops->DataSequenceInOrder && (type != 2))
|
||||
if (conn->sess->sess_ops->DataSequenceInOrder &&
|
||||
!recovery)
|
||||
cmd->r2t_offset = max(cmd->r2t_offset, cmd->write_data_done);
|
||||
|
||||
while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) {
|
||||
if (conn->sess->sess_ops->DataSequenceInOrder) {
|
||||
offset = cmd->r2t_offset;
|
||||
|
||||
if (first_r2t && (type == 2)) {
|
||||
xfer_len = ((offset +
|
||||
(conn->sess->sess_ops->MaxBurstLength -
|
||||
cmd->next_burst_len) >
|
||||
cmd->data_length) ?
|
||||
(cmd->data_length - offset) :
|
||||
(conn->sess->sess_ops->MaxBurstLength -
|
||||
cmd->next_burst_len));
|
||||
if (first_r2t && recovery) {
|
||||
int new_data_end = offset +
|
||||
conn->sess->sess_ops->MaxBurstLength -
|
||||
cmd->next_burst_len;
|
||||
|
||||
if (new_data_end > cmd->data_length)
|
||||
xfer_len = cmd->data_length - offset;
|
||||
else
|
||||
xfer_len =
|
||||
conn->sess->sess_ops->MaxBurstLength -
|
||||
cmd->next_burst_len;
|
||||
} else {
|
||||
xfer_len = ((offset +
|
||||
conn->sess->sess_ops->MaxBurstLength) >
|
||||
cmd->data_length) ?
|
||||
(cmd->data_length - offset) :
|
||||
conn->sess->sess_ops->MaxBurstLength;
|
||||
int new_data_end = offset +
|
||||
conn->sess->sess_ops->MaxBurstLength;
|
||||
|
||||
if (new_data_end > cmd->data_length)
|
||||
xfer_len = cmd->data_length - offset;
|
||||
else
|
||||
xfer_len = conn->sess->sess_ops->MaxBurstLength;
|
||||
}
|
||||
cmd->r2t_offset += xfer_len;
|
||||
|
||||
|
@ -3225,6 +3229,8 @@ static bool iscsit_check_inaddr_any(struct iscsi_np *np)
|
|||
return ret;
|
||||
}
|
||||
|
||||
#define SENDTARGETS_BUF_LIMIT 32768U
|
||||
|
||||
static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd)
|
||||
{
|
||||
char *payload = NULL;
|
||||
|
@ -3233,12 +3239,10 @@ static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd)
|
|||
struct iscsi_tiqn *tiqn;
|
||||
struct iscsi_tpg_np *tpg_np;
|
||||
int buffer_len, end_of_buf = 0, len = 0, payload_len = 0;
|
||||
unsigned char buf[256];
|
||||
unsigned char buf[ISCSI_IQN_LEN+12]; /* iqn + "TargetName=" + \0 */
|
||||
|
||||
buffer_len = (conn->conn_ops->MaxRecvDataSegmentLength > 32768) ?
|
||||
32768 : conn->conn_ops->MaxRecvDataSegmentLength;
|
||||
|
||||
memset(buf, 0, 256);
|
||||
buffer_len = max(conn->conn_ops->MaxRecvDataSegmentLength,
|
||||
SENDTARGETS_BUF_LIMIT);
|
||||
|
||||
payload = kzalloc(buffer_len, GFP_KERNEL);
|
||||
if (!payload) {
|
||||
|
|
|
@ -18,7 +18,7 @@ extern int iscsit_logout_closesession(struct iscsi_cmd *, struct iscsi_conn *);
|
|||
extern int iscsit_logout_closeconnection(struct iscsi_cmd *, struct iscsi_conn *);
|
||||
extern int iscsit_logout_removeconnforrecovery(struct iscsi_cmd *, struct iscsi_conn *);
|
||||
extern int iscsit_send_async_msg(struct iscsi_conn *, u16, u8, u8);
|
||||
extern int iscsit_build_r2ts_for_cmd(struct iscsi_cmd *, struct iscsi_conn *, int);
|
||||
extern int iscsit_build_r2ts_for_cmd(struct iscsi_cmd *, struct iscsi_conn *, bool recovery);
|
||||
extern void iscsit_thread_get_cpumask(struct iscsi_conn *);
|
||||
extern int iscsi_target_tx_thread(void *);
|
||||
extern int iscsi_target_rx_thread(void *);
|
||||
|
|
|
@ -1538,7 +1538,7 @@ static int lio_write_pending(struct se_cmd *se_cmd)
|
|||
struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
|
||||
|
||||
if (!cmd->immediate_data && !cmd->unsolicited_data)
|
||||
return iscsit_build_r2ts_for_cmd(cmd, cmd->conn, 1);
|
||||
return iscsit_build_r2ts_for_cmd(cmd, cmd->conn, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -296,12 +296,11 @@ struct iscsi_datain_req {
|
|||
u32 runlength;
|
||||
u32 data_length;
|
||||
u32 data_offset;
|
||||
u32 data_offset_end;
|
||||
u32 data_sn;
|
||||
u32 next_burst_len;
|
||||
u32 read_data_done;
|
||||
u32 seq_send_order;
|
||||
struct list_head dr_list;
|
||||
struct list_head cmd_datain_node;
|
||||
} ____cacheline_aligned;
|
||||
|
||||
struct iscsi_ooo_cmdsn {
|
||||
|
|
|
@ -37,7 +37,7 @@ struct iscsi_datain_req *iscsit_allocate_datain_req(void)
|
|||
" struct iscsi_datain_req\n");
|
||||
return NULL;
|
||||
}
|
||||
INIT_LIST_HEAD(&dr->dr_list);
|
||||
INIT_LIST_HEAD(&dr->cmd_datain_node);
|
||||
|
||||
return dr;
|
||||
}
|
||||
|
@ -45,14 +45,14 @@ struct iscsi_datain_req *iscsit_allocate_datain_req(void)
|
|||
void iscsit_attach_datain_req(struct iscsi_cmd *cmd, struct iscsi_datain_req *dr)
|
||||
{
|
||||
spin_lock(&cmd->datain_lock);
|
||||
list_add_tail(&dr->dr_list, &cmd->datain_list);
|
||||
list_add_tail(&dr->cmd_datain_node, &cmd->datain_list);
|
||||
spin_unlock(&cmd->datain_lock);
|
||||
}
|
||||
|
||||
void iscsit_free_datain_req(struct iscsi_cmd *cmd, struct iscsi_datain_req *dr)
|
||||
{
|
||||
spin_lock(&cmd->datain_lock);
|
||||
list_del(&dr->dr_list);
|
||||
list_del(&dr->cmd_datain_node);
|
||||
spin_unlock(&cmd->datain_lock);
|
||||
|
||||
kmem_cache_free(lio_dr_cache, dr);
|
||||
|
@ -63,8 +63,8 @@ void iscsit_free_all_datain_reqs(struct iscsi_cmd *cmd)
|
|||
struct iscsi_datain_req *dr, *dr_tmp;
|
||||
|
||||
spin_lock(&cmd->datain_lock);
|
||||
list_for_each_entry_safe(dr, dr_tmp, &cmd->datain_list, dr_list) {
|
||||
list_del(&dr->dr_list);
|
||||
list_for_each_entry_safe(dr, dr_tmp, &cmd->datain_list, cmd_datain_node) {
|
||||
list_del(&dr->cmd_datain_node);
|
||||
kmem_cache_free(lio_dr_cache, dr);
|
||||
}
|
||||
spin_unlock(&cmd->datain_lock);
|
||||
|
@ -72,17 +72,14 @@ void iscsit_free_all_datain_reqs(struct iscsi_cmd *cmd)
|
|||
|
||||
struct iscsi_datain_req *iscsit_get_datain_req(struct iscsi_cmd *cmd)
|
||||
{
|
||||
struct iscsi_datain_req *dr;
|
||||
|
||||
if (list_empty(&cmd->datain_list)) {
|
||||
pr_err("cmd->datain_list is empty for ITT:"
|
||||
" 0x%08x\n", cmd->init_task_tag);
|
||||
return NULL;
|
||||
}
|
||||
list_for_each_entry(dr, &cmd->datain_list, dr_list)
|
||||
break;
|
||||
|
||||
return dr;
|
||||
return list_first_entry(&cmd->datain_list, struct iscsi_datain_req,
|
||||
cmd_datain_node);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -279,11 +279,9 @@ int iscsit_create_recovery_datain_values_datasequenceinorder_no(
|
|||
* seq->first_datasn and seq->last_datasn have not been set.
|
||||
*/
|
||||
if (!seq->sent) {
|
||||
#if 0
|
||||
pr_err("Ignoring non-sent sequence 0x%08x ->"
|
||||
" 0x%08x\n\n", seq->first_datasn,
|
||||
seq->last_datasn);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -294,11 +292,10 @@ int iscsit_create_recovery_datain_values_datasequenceinorder_no(
|
|||
*/
|
||||
if ((seq->first_datasn < begrun) &&
|
||||
(seq->last_datasn < begrun)) {
|
||||
#if 0
|
||||
pr_err("Pre BegRun sequence 0x%08x ->"
|
||||
" 0x%08x\n", seq->first_datasn,
|
||||
seq->last_datasn);
|
||||
#endif
|
||||
|
||||
read_data_done += cmd->seq_list[i].xfer_len;
|
||||
seq->next_burst_len = seq->pdu_send_order = 0;
|
||||
continue;
|
||||
|
@ -309,11 +306,10 @@ int iscsit_create_recovery_datain_values_datasequenceinorder_no(
|
|||
*/
|
||||
if ((seq->first_datasn <= begrun) &&
|
||||
(seq->last_datasn >= begrun)) {
|
||||
#if 0
|
||||
pr_err("Found sequence begrun: 0x%08x in"
|
||||
" 0x%08x -> 0x%08x\n", begrun,
|
||||
seq->first_datasn, seq->last_datasn);
|
||||
#endif
|
||||
|
||||
seq_send_order = seq->seq_send_order;
|
||||
data_sn = seq->first_datasn;
|
||||
seq->next_burst_len = seq->pdu_send_order = 0;
|
||||
|
@ -369,10 +365,9 @@ int iscsit_create_recovery_datain_values_datasequenceinorder_no(
|
|||
*/
|
||||
if ((seq->first_datasn > begrun) ||
|
||||
(seq->last_datasn > begrun)) {
|
||||
#if 0
|
||||
pr_err("Post BegRun sequence 0x%08x -> 0x%08x\n",
|
||||
seq->first_datasn, seq->last_datasn);
|
||||
#endif
|
||||
|
||||
seq->next_burst_len = seq->pdu_send_order = 0;
|
||||
continue;
|
||||
}
|
||||
|
@ -987,7 +982,7 @@ int iscsit_execute_cmd(struct iscsi_cmd *cmd, int ooo)
|
|||
return 0;
|
||||
|
||||
iscsit_set_dataout_sequence_values(cmd);
|
||||
iscsit_build_r2ts_for_cmd(cmd, cmd->conn, 0);
|
||||
iscsit_build_r2ts_for_cmd(cmd, cmd->conn, false);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -803,14 +803,6 @@ static int iscsi_check_numerical_value(struct iscsi_param *param, char *value_pt
|
|||
|
||||
value = simple_strtoul(value_ptr, &tmpptr, 0);
|
||||
|
||||
/* #warning FIXME: Fix this */
|
||||
#if 0
|
||||
if (strspn(endptr, WHITE_SPACE) != strlen(endptr)) {
|
||||
pr_err("Illegal value \"%s\" for \"%s\".\n",
|
||||
value, param->name);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
if (IS_TYPERANGE_0_TO_2(param)) {
|
||||
if ((value < 0) || (value > 2)) {
|
||||
pr_err("Illegal value for \"%s\", must be"
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
|
||||
#define OFFLOAD_BUF_SIZE 32768
|
||||
|
||||
void iscsit_dump_seq_list(struct iscsi_cmd *cmd)
|
||||
#ifdef DEBUG
|
||||
static void iscsit_dump_seq_list(struct iscsi_cmd *cmd)
|
||||
{
|
||||
int i;
|
||||
struct iscsi_seq *seq;
|
||||
|
@ -46,7 +47,7 @@ void iscsit_dump_seq_list(struct iscsi_cmd *cmd)
|
|||
}
|
||||
}
|
||||
|
||||
void iscsit_dump_pdu_list(struct iscsi_cmd *cmd)
|
||||
static void iscsit_dump_pdu_list(struct iscsi_cmd *cmd)
|
||||
{
|
||||
int i;
|
||||
struct iscsi_pdu *pdu;
|
||||
|
@ -61,6 +62,10 @@ void iscsit_dump_pdu_list(struct iscsi_cmd *cmd)
|
|||
pdu->length, pdu->pdu_send_order, pdu->seq_no);
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void iscsit_dump_seq_list(struct iscsi_cmd *cmd) {}
|
||||
static void iscsit_dump_pdu_list(struct iscsi_cmd *cmd) {}
|
||||
#endif
|
||||
|
||||
static void iscsit_ordered_seq_lists(
|
||||
struct iscsi_cmd *cmd,
|
||||
|
@ -464,9 +469,8 @@ static int iscsit_build_pdu_and_seq_list(
|
|||
} else
|
||||
iscsit_ordered_seq_lists(cmd, bl->type);
|
||||
}
|
||||
#if 0
|
||||
|
||||
iscsit_dump_seq_list(cmd);
|
||||
#endif
|
||||
}
|
||||
if (!datapduinorder) {
|
||||
if (bl->data_direction & ISCSI_PDU_WRITE) {
|
||||
|
@ -484,9 +488,8 @@ static int iscsit_build_pdu_and_seq_list(
|
|||
} else
|
||||
iscsit_ordered_pdu_lists(cmd, bl->type);
|
||||
}
|
||||
#if 0
|
||||
|
||||
iscsit_dump_pdu_list(cmd);
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -572,13 +575,12 @@ redo:
|
|||
pdu = &cmd->pdu_list[cmd->pdu_start];
|
||||
|
||||
for (i = 0; pdu[i].seq_no != cmd->seq_no; i++) {
|
||||
#if 0
|
||||
pr_debug("pdu[i].seq_no: %d, pdu[i].pdu"
|
||||
"_send_order: %d, pdu[i].offset: %d,"
|
||||
" pdu[i].length: %d\n", pdu[i].seq_no,
|
||||
pdu[i].pdu_send_order, pdu[i].offset,
|
||||
pdu[i].length);
|
||||
#endif
|
||||
|
||||
if (pdu[i].pdu_send_order == cmd->pdu_send_order) {
|
||||
cmd->pdu_send_order++;
|
||||
return &pdu[i];
|
||||
|
@ -601,11 +603,11 @@ redo:
|
|||
pr_err("struct iscsi_seq is NULL!\n");
|
||||
return NULL;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("seq->pdu_start: %d, seq->pdu_count: %d,"
|
||||
" seq->seq_no: %d\n", seq->pdu_start, seq->pdu_count,
|
||||
seq->seq_no);
|
||||
#endif
|
||||
|
||||
pdu = &cmd->pdu_list[seq->pdu_start];
|
||||
|
||||
if (seq->pdu_send_order == seq->pdu_count) {
|
||||
|
@ -645,12 +647,11 @@ struct iscsi_seq *iscsit_get_seq_holder(
|
|||
}
|
||||
|
||||
for (i = 0; i < cmd->seq_count; i++) {
|
||||
#if 0
|
||||
pr_debug("seq_list[i].orig_offset: %d, seq_list[i]."
|
||||
"xfer_len: %d, seq_list[i].seq_no %u\n",
|
||||
cmd->seq_list[i].orig_offset, cmd->seq_list[i].xfer_len,
|
||||
cmd->seq_list[i].seq_no);
|
||||
#endif
|
||||
|
||||
if ((cmd->seq_list[i].orig_offset +
|
||||
cmd->seq_list[i].xfer_len) >=
|
||||
(offset + length))
|
||||
|
|
|
@ -78,10 +78,7 @@ int iscsit_tmr_task_warm_reset(
|
|||
{
|
||||
struct iscsi_session *sess = conn->sess;
|
||||
struct iscsi_node_attrib *na = iscsit_tpg_get_node_attrib(sess);
|
||||
#if 0
|
||||
struct iscsi_init_task_mgt_cmnd *hdr =
|
||||
(struct iscsi_init_task_mgt_cmnd *) buf;
|
||||
#endif
|
||||
|
||||
if (!na->tmr_warm_reset) {
|
||||
pr_err("TMR Opcode TARGET_WARM_RESET authorization"
|
||||
" failed for Initiator Node: %s\n",
|
||||
|
@ -292,7 +289,7 @@ static int iscsit_task_reassign_complete_write(
|
|||
/*
|
||||
* iscsit_build_r2ts_for_cmd() can handle the rest from here.
|
||||
*/
|
||||
return iscsit_build_r2ts_for_cmd(cmd, conn, 2);
|
||||
return iscsit_build_r2ts_for_cmd(cmd, conn, true);
|
||||
}
|
||||
|
||||
static int iscsit_task_reassign_complete_read(
|
||||
|
|
|
@ -133,15 +133,10 @@ static struct se_device *fd_create_virtdevice(
|
|||
ret = PTR_ERR(dev_p);
|
||||
goto fail;
|
||||
}
|
||||
#if 0
|
||||
if (di->no_create_file)
|
||||
flags = O_RDWR | O_LARGEFILE;
|
||||
else
|
||||
flags = O_RDWR | O_CREAT | O_LARGEFILE;
|
||||
#else
|
||||
|
||||
/* O_DIRECT too? */
|
||||
flags = O_RDWR | O_CREAT | O_LARGEFILE;
|
||||
#endif
|
||||
/* flags |= O_DIRECT; */
|
||||
|
||||
/*
|
||||
* If fd_buffered_io=1 has not been set explicitly (the default),
|
||||
* use O_SYNC to force FILEIO writes to disk.
|
||||
|
|
|
@ -500,11 +500,10 @@ static int core_scsi3_pr_seq_non_holder(
|
|||
* statement.
|
||||
*/
|
||||
if (!ret && !other_cdb) {
|
||||
#if 0
|
||||
pr_debug("Allowing explict CDB: 0x%02x for %s"
|
||||
" reservation holder\n", cdb[0],
|
||||
core_scsi3_pr_dump_type(pr_reg_type));
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
/*
|
||||
|
@ -532,14 +531,14 @@ static int core_scsi3_pr_seq_non_holder(
|
|||
* as we expect registered non-reservation holding
|
||||
* nexuses to issue CDBs.
|
||||
*/
|
||||
#if 0
|
||||
|
||||
if (!registered_nexus) {
|
||||
pr_debug("Allowing implict CDB: 0x%02x"
|
||||
" for %s reservation on unregistered"
|
||||
" nexus\n", cdb[0],
|
||||
core_scsi3_pr_dump_type(pr_reg_type));
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
} else if ((reg_only) || (all_reg)) {
|
||||
|
@ -548,11 +547,11 @@ static int core_scsi3_pr_seq_non_holder(
|
|||
* For PR_*_REG_ONLY and PR_*_ALL_REG reservations,
|
||||
* allow commands from registered nexuses.
|
||||
*/
|
||||
#if 0
|
||||
|
||||
pr_debug("Allowing implict CDB: 0x%02x for %s"
|
||||
" reservation\n", cdb[0],
|
||||
core_scsi3_pr_dump_type(pr_reg_type));
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -1666,12 +1665,12 @@ static int core_scsi3_decode_spec_i_port(
|
|||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("SPC-3 PR SPEC_I_PT: Got %s data_length: %u tpdl: %u"
|
||||
" tid_len: %d for %s + %s\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(), cmd->data_length,
|
||||
tpdl, tid_len, i_str, iport_ptr);
|
||||
#endif
|
||||
|
||||
if (tid_len > tpdl) {
|
||||
pr_err("SPC-3 PR SPEC_I_PT: Illegal tid_len:"
|
||||
" %u for Transport ID: %s\n", tid_len, ptr);
|
||||
|
@ -1714,12 +1713,12 @@ static int core_scsi3_decode_spec_i_port(
|
|||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("SPC-3 PR SPEC_I_PT: Located %s Node: %s"
|
||||
" dest_se_deve mapped_lun: %u\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
dest_node_acl->initiatorname, dest_se_deve->mapped_lun);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Skip any TransportIDs that already have a registration for
|
||||
* this target port.
|
||||
|
@ -3473,10 +3472,10 @@ static int core_scsi3_emulate_pro_register_and_move(
|
|||
|
||||
buf = transport_kmap_data_sg(cmd);
|
||||
proto_ident = (buf[24] & 0x0f);
|
||||
#if 0
|
||||
|
||||
pr_debug("SPC-3 PR REGISTER_AND_MOVE: Extracted Protocol Identifier:"
|
||||
" 0x%02x\n", proto_ident);
|
||||
#endif
|
||||
|
||||
if (proto_ident != dest_tf_ops->get_fabric_proto_ident(dest_se_tpg)) {
|
||||
pr_err("SPC-3 PR REGISTER_AND_MOVE: Received"
|
||||
" proto_ident: 0x%02x does not match ident: 0x%02x"
|
||||
|
@ -3575,11 +3574,11 @@ after_iport_check:
|
|||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("SPC-3 PR REGISTER_AND_MOVE: Found %s dest_node_acl:"
|
||||
" %s from TransportID\n", dest_tf_ops->get_fabric_name(),
|
||||
dest_node_acl->initiatorname);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Locate the struct se_dev_entry pointer for the matching RELATIVE TARGET
|
||||
* PORT IDENTIFIER.
|
||||
|
@ -3603,12 +3602,12 @@ after_iport_check:
|
|||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("SPC-3 PR REGISTER_AND_MOVE: Located %s node %s LUN"
|
||||
" ACL for dest_se_deve->mapped_lun: %u\n",
|
||||
dest_tf_ops->get_fabric_name(), dest_node_acl->initiatorname,
|
||||
dest_se_deve->mapped_lun);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* A persistent reservation needs to already existing in order to
|
||||
* successfully complete the REGISTER_AND_MOVE service action..
|
||||
|
|
|
@ -2394,12 +2394,12 @@ static inline u32 transport_get_size(
|
|||
} else /* bytes */
|
||||
return sectors;
|
||||
}
|
||||
#if 0
|
||||
|
||||
pr_debug("Returning block_size: %u, sectors: %u == %u for"
|
||||
" %s object\n", dev->se_sub_dev->se_dev_attrib.block_size, sectors,
|
||||
dev->se_sub_dev->se_dev_attrib.block_size * sectors,
|
||||
dev->transport->name);
|
||||
#endif
|
||||
" %s object\n", dev->se_sub_dev->se_dev_attrib.block_size,
|
||||
sectors, dev->se_sub_dev->se_dev_attrib.block_size * sectors,
|
||||
dev->transport->name);
|
||||
|
||||
return dev->se_sub_dev->se_dev_attrib.block_size * sectors;
|
||||
}
|
||||
|
||||
|
@ -2617,11 +2617,10 @@ static int transport_generic_cmd_sequencer(
|
|||
* by the ALUA primary or secondary access state..
|
||||
*/
|
||||
if (ret > 0) {
|
||||
#if 0
|
||||
pr_debug("[%s]: ALUA TG Port not available,"
|
||||
" SenseKey: NOT_READY, ASC/ASCQ: 0x04/0x%02x\n",
|
||||
cmd->se_tfo->get_fabric_name(), alua_ascq);
|
||||
#endif
|
||||
|
||||
transport_set_sense_codes(cmd, 0x04, alua_ascq);
|
||||
cmd->se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION;
|
||||
cmd->scsi_sense_reason = TCM_CHECK_CONDITION_NOT_READY;
|
||||
|
@ -4564,12 +4563,12 @@ int transport_check_aborted_status(struct se_cmd *cmd, int send_status)
|
|||
if (!send_status ||
|
||||
(cmd->se_cmd_flags & SCF_SENT_DELAYED_TAS))
|
||||
return 1;
|
||||
#if 0
|
||||
|
||||
pr_debug("Sending delayed SAM_STAT_TASK_ABORTED"
|
||||
" status for CDB: 0x%02x ITT: 0x%08x\n",
|
||||
cmd->t_task_cdb[0],
|
||||
cmd->se_tfo->get_task_tag(cmd));
|
||||
#endif
|
||||
|
||||
cmd->se_cmd_flags |= SCF_SENT_DELAYED_TAS;
|
||||
cmd->se_tfo->queue_status(cmd);
|
||||
ret = 1;
|
||||
|
@ -4602,11 +4601,11 @@ void transport_send_task_abort(struct se_cmd *cmd)
|
|||
}
|
||||
}
|
||||
cmd->scsi_status = SAM_STAT_TASK_ABORTED;
|
||||
#if 0
|
||||
|
||||
pr_debug("Setting SAM_STAT_TASK_ABORTED status for CDB: 0x%02x,"
|
||||
" ITT: 0x%08x\n", cmd->t_task_cdb[0],
|
||||
cmd->se_tfo->get_task_tag(cmd));
|
||||
#endif
|
||||
|
||||
cmd->se_tfo->queue_status(cmd);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue