On Mon, 2015-01-26 at 12:49 +0200, Sagi Grimberg wrote: > Reduce code duplication. > > Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx> > --- > drivers/target/iscsi/iscsi_target.c | 12 ++---------- > drivers/target/iscsi/iscsi_target_util.c | 9 ++------- > include/target/iscsi/iscsi_target_core.h | 13 +++++++++++++ > 3 files changed, 17 insertions(+), 17 deletions(-) > > diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c > index b21716a..866f9fe 100644 > --- a/drivers/target/iscsi/iscsi_target.c > +++ b/drivers/target/iscsi/iscsi_target.c > @@ -968,11 +968,7 @@ int iscsit_setup_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, > > conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; > if (hdr->flags & ISCSI_FLAG_CMD_READ) { > - spin_lock_bh(&conn->sess->ttt_lock); > - cmd->targ_xfer_tag = conn->sess->targ_xfer_tag++; > - if (cmd->targ_xfer_tag == 0xFFFFFFFF) > - cmd->targ_xfer_tag = conn->sess->targ_xfer_tag++; > - spin_unlock_bh(&conn->sess->ttt_lock); > + cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); > } else if (hdr->flags & ISCSI_FLAG_CMD_WRITE) > cmd->targ_xfer_tag = 0xFFFFFFFF; > cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); > @@ -3047,11 +3043,7 @@ static int iscsit_send_r2t( > int_to_scsilun(cmd->se_cmd.orig_fe_lun, > (struct scsi_lun *)&hdr->lun); > hdr->itt = cmd->init_task_tag; > - spin_lock_bh(&conn->sess->ttt_lock); > - r2t->targ_xfer_tag = conn->sess->targ_xfer_tag++; > - if (r2t->targ_xfer_tag == 0xFFFFFFFF) > - r2t->targ_xfer_tag = conn->sess->targ_xfer_tag++; > - spin_unlock_bh(&conn->sess->ttt_lock); > + r2t->targ_xfer_tag = session_get_next_ttt(conn->sess); > hdr->ttt = cpu_to_be32(r2t->targ_xfer_tag); > hdr->statsn = cpu_to_be32(conn->stat_sn); > hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); > diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c > index 0b9c1d9..7df6919 100644 > --- a/drivers/target/iscsi/iscsi_target_util.c > +++ b/drivers/target/iscsi/iscsi_target_util.c > @@ -939,13 +939,8 @@ static int iscsit_add_nopin(struct iscsi_conn *conn, int want_response) > state = (want_response) ? ISTATE_SEND_NOPIN_WANT_RESPONSE : > ISTATE_SEND_NOPIN_NO_RESPONSE; > cmd->init_task_tag = RESERVED_ITT; > - spin_lock_bh(&conn->sess->ttt_lock); > - cmd->targ_xfer_tag = (want_response) ? conn->sess->targ_xfer_tag++ : > - 0xFFFFFFFF; > - if (want_response && (cmd->targ_xfer_tag == 0xFFFFFFFF)) > - cmd->targ_xfer_tag = conn->sess->targ_xfer_tag++; > - spin_unlock_bh(&conn->sess->ttt_lock); > - > + cmd->targ_xfer_tag = (want_response) ? > + session_get_next_ttt(conn->sess) : 0xFFFFFFFF; > spin_lock_bh(&conn->cmd_lock); > list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); > spin_unlock_bh(&conn->cmd_lock); > diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h > index 09a522b..5f41a17 100644 > --- a/include/target/iscsi/iscsi_target_core.h > +++ b/include/target/iscsi/iscsi_target_core.h > @@ -880,4 +880,17 @@ struct iscsit_global { > struct iscsi_portal_group *discovery_tpg; > }; > > +static inline u32 session_get_next_ttt(struct iscsi_session *session) > +{ > + u32 ttt; > + > + spin_lock_bh(&session->ttt_lock); > + ttt = session->targ_xfer_tag++; > + if (ttt == 0xFFFFFFFF) > + ttt = session->targ_xfer_tag++; > + spin_unlock_bh(&session->ttt_lock); > + > + return ttt; > +} > + > #endif /* ISCSI_TARGET_CORE_H */ Looks fine. Applied to target-pending/for-next. --nab -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html