lkml.org 
[lkml]   [2016]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 149/196] target: Remove first argument of target_{get,put}_sess_cmd()
    Date
    3.19.8-ckt16 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Bart Van Assche <bart.vanassche@sandisk.com>

    commit afc16604c06414223478df3e42301ab630b9960a upstream.

    The first argument of these two functions is always identical
    to se_cmd->se_sess. Hence remove the first argument.

    Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: <qla2xxx-upstream@qlogic.com>
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/infiniband/ulp/isert/ib_isert.c | 6 +++---
    drivers/infiniband/ulp/srpt/ib_srpt.c | 10 +++++-----
    drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +-
    drivers/target/iscsi/iscsi_target.c | 15 +++++++--------
    drivers/target/iscsi/iscsi_target_configfs.c | 2 +-
    drivers/target/iscsi/iscsi_target_util.c | 4 ++--
    drivers/target/target_core_tmr.c | 2 +-
    drivers/target/target_core_transport.c | 20 ++++++++++----------
    drivers/vhost/scsi.c | 2 +-
    include/target/target_core_fabric.h | 4 ++--
    10 files changed, 33 insertions(+), 34 deletions(-)

    diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
    index 46563f1..0ef089e 100644
    --- a/drivers/infiniband/ulp/isert/ib_isert.c
    +++ b/drivers/infiniband/ulp/isert/ib_isert.c
    @@ -1284,7 +1284,7 @@ sequence_cmd:
    if (!rc && dump_payload == false && unsol_data)
    iscsit_set_unsoliticed_dataout(cmd);
    else if (dump_payload && imm_data)
    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);

    return 0;
    }
    @@ -1701,7 +1701,7 @@ isert_put_cmd(struct isert_cmd *isert_cmd, bool comp_err)
    cmd->se_cmd.t_state == TRANSPORT_WRITE_PENDING) {
    struct se_cmd *se_cmd = &cmd->se_cmd;

    - target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    }
    }

    @@ -1870,7 +1870,7 @@ isert_completion_rdma_read(struct iser_tx_desc *tx_desc,
    spin_unlock_bh(&cmd->istate_lock);

    if (ret) {
    - target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    transport_send_check_condition_and_sense(se_cmd,
    se_cmd->pi_err, 0);
    } else {
    diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
    index eb694dd..9abc363 100644
    --- a/drivers/infiniband/ulp/srpt/ib_srpt.c
    +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
    @@ -1335,7 +1335,7 @@ static int srpt_abort_cmd(struct srpt_send_ioctx *ioctx)

    BUG_ON(ch->sess == NULL);

    - target_put_sess_cmd(ch->sess, &ioctx->cmd);
    + target_put_sess_cmd(&ioctx->cmd);
    goto out;
    }

    @@ -1366,11 +1366,11 @@ static int srpt_abort_cmd(struct srpt_send_ioctx *ioctx)
    * not been received in time.
    */
    srpt_unmap_sg_to_ib_sge(ioctx->ch, ioctx);
    - target_put_sess_cmd(ioctx->ch->sess, &ioctx->cmd);
    + target_put_sess_cmd(&ioctx->cmd);
    break;
    case SRPT_STATE_MGMT_RSP_SENT:
    srpt_set_cmd_state(ioctx, SRPT_STATE_DONE);
    - target_put_sess_cmd(ioctx->ch->sess, &ioctx->cmd);
    + target_put_sess_cmd(&ioctx->cmd);
    break;
    default:
    WARN(1, "Unexpected command state (%d)", state);
    @@ -1682,7 +1682,7 @@ static int srpt_check_stop_free(struct se_cmd *cmd)
    struct srpt_send_ioctx *ioctx = container_of(cmd,
    struct srpt_send_ioctx, cmd);

    - return target_put_sess_cmd(ioctx->ch->sess, &ioctx->cmd);
    + return target_put_sess_cmd(&ioctx->cmd);
    }

    /**
    @@ -3079,7 +3079,7 @@ static void srpt_queue_response(struct se_cmd *cmd)
    ioctx->tag);
    srpt_unmap_sg_to_ib_sge(ch, ioctx);
    srpt_set_cmd_state(ioctx, SRPT_STATE_DONE);
    - target_put_sess_cmd(ioctx->ch->sess, &ioctx->cmd);
    + target_put_sess_cmd(&ioctx->cmd);
    }
    }

    diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
    index a82db70..c763ca5 100644
    --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
    +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
    @@ -422,7 +422,7 @@ static int tcm_qla2xxx_check_stop_free(struct se_cmd *se_cmd)
    cmd->cmd_flags |= BIT_14;
    }

    - return target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + return target_put_sess_cmd(se_cmd);
    }

    /* tcm_qla2xxx_release_cmd - Callback from TCM Core to release underlying
    diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
    index 78dda5a..d1751ef 100644
    --- a/drivers/target/iscsi/iscsi_target.c
    +++ b/drivers/target/iscsi/iscsi_target.c
    @@ -708,7 +708,7 @@ static int iscsit_add_reject_from_cmd(
    */
    if (cmd->se_cmd.se_tfo != NULL) {
    pr_debug("iscsi reject: calling target_put_sess_cmd >>>>>>\n");
    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);
    }
    return -1;
    }
    @@ -998,7 +998,7 @@ int iscsit_setup_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
    hdr->cmdsn, be32_to_cpu(hdr->data_length), payload_length,
    conn->cid);

    - target_get_sess_cmd(conn->sess->se_sess, &cmd->se_cmd, true);
    + target_get_sess_cmd(&cmd->se_cmd, true);

    cmd->sense_reason = transport_lookup_cmd_lun(&cmd->se_cmd,
    scsilun_to_int(&hdr->lun));
    @@ -1064,7 +1064,7 @@ int iscsit_process_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
    if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
    return -1;
    else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);
    return 0;
    }
    }
    @@ -1080,7 +1080,7 @@ int iscsit_process_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
    if (!cmd->sense_reason)
    return 0;

    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);
    return 0;
    }

    @@ -1111,7 +1111,6 @@ static int
    iscsit_get_immediate_data(struct iscsi_cmd *cmd, struct iscsi_scsi_req *hdr,
    bool dump_payload)
    {
    - struct iscsi_conn *conn = cmd->conn;
    int cmdsn_ret = 0, immed_ret = IMMEDIATE_DATA_NORMAL_OPERATION;
    /*
    * Special case for Unsupported SAM WRITE Opcodes and ImmediateData=Yes.
    @@ -1138,7 +1137,7 @@ after_immediate_data:

    rc = iscsit_dump_data_payload(cmd->conn,
    cmd->first_burst_len, 1);
    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);
    return rc;
    } else if (cmd->unsolicited_data)
    iscsit_set_unsoliticed_dataout(cmd);
    @@ -1808,7 +1807,7 @@ iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
    conn->sess->se_sess, 0, DMA_NONE,
    TCM_SIMPLE_TAG, cmd->sense_buffer + 2);

    - target_get_sess_cmd(conn->sess->se_sess, &cmd->se_cmd, true);
    + target_get_sess_cmd(&cmd->se_cmd, true);
    sess_ref = true;

    switch (function) {
    @@ -1950,7 +1949,7 @@ attach:
    */
    if (sess_ref) {
    pr_debug("Handle TMR, using sess_ref=true check\n");
    - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
    + target_put_sess_cmd(&cmd->se_cmd);
    }

    iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
    diff --git a/drivers/target/iscsi/iscsi_target_configfs.c b/drivers/target/iscsi/iscsi_target_configfs.c
    index e2f1aeb..41877fe 100644
    --- a/drivers/target/iscsi/iscsi_target_configfs.c
    +++ b/drivers/target/iscsi/iscsi_target_configfs.c
    @@ -1961,7 +1961,7 @@ static void lio_set_default_node_attributes(struct se_node_acl *se_acl)

    static int lio_check_stop_free(struct se_cmd *se_cmd)
    {
    - return target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + return target_put_sess_cmd(se_cmd);
    }

    static void lio_release_cmd(struct se_cmd *se_cmd)
    diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c
    index bcd88ec..6f788ca 100644
    --- a/drivers/target/iscsi/iscsi_target_util.c
    +++ b/drivers/target/iscsi/iscsi_target_util.c
    @@ -746,7 +746,7 @@ void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown)
    rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown);
    if (!rc && shutdown && se_cmd && se_cmd->se_sess) {
    __iscsit_free_cmd(cmd, true, shutdown);
    - target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    }
    break;
    case ISCSI_OP_REJECT:
    @@ -762,7 +762,7 @@ void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown)
    rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown);
    if (!rc && shutdown && se_cmd->se_sess) {
    __iscsit_free_cmd(cmd, true, shutdown);
    - target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    }
    break;
    }
    diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
    index f703e41..3830747 100644
    --- a/drivers/target/target_core_tmr.c
    +++ b/drivers/target/target_core_tmr.c
    @@ -153,7 +153,7 @@ void core_tmr_abort_task(
    cancel_work_sync(&se_cmd->work);
    transport_wait_for_tasks(se_cmd);

    - target_put_sess_cmd(se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    transport_cmd_finish_abort(se_cmd, true);

    printk("ABORT_TASK: Sending TMR_FUNCTION_COMPLETE for"
    diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
    index 30d60fa..a4f8eb9 100644
    --- a/drivers/target/target_core_transport.c
    +++ b/drivers/target/target_core_transport.c
    @@ -1379,7 +1379,7 @@ int target_submit_cmd_map_sgls(struct se_cmd *se_cmd, struct se_session *se_sess
    * for fabrics using TARGET_SCF_ACK_KREF that expect a second
    * kref_put() to happen during fabric packet acknowledgement.
    */
    - ret = target_get_sess_cmd(se_sess, se_cmd, (flags & TARGET_SCF_ACK_KREF));
    + ret = target_get_sess_cmd(se_cmd, flags & TARGET_SCF_ACK_KREF);
    if (ret)
    return ret;
    /*
    @@ -1393,7 +1393,7 @@ int target_submit_cmd_map_sgls(struct se_cmd *se_cmd, struct se_session *se_sess
    rc = transport_lookup_cmd_lun(se_cmd, unpacked_lun);
    if (rc) {
    transport_send_check_condition_and_sense(se_cmd, rc, 0);
    - target_put_sess_cmd(se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);
    return 0;
    }

    @@ -1544,7 +1544,7 @@ int target_submit_tmr(struct se_cmd *se_cmd, struct se_session *se_sess,
    se_cmd->se_tmr_req->ref_task_tag = tag;

    /* See target_submit_cmd for commentary */
    - ret = target_get_sess_cmd(se_sess, se_cmd, (flags & TARGET_SCF_ACK_KREF));
    + ret = target_get_sess_cmd(se_cmd, flags & TARGET_SCF_ACK_KREF);
    if (ret) {
    core_tmr_release_req(se_cmd->se_tmr_req);
    return ret;
    @@ -2148,7 +2148,7 @@ static int transport_release_cmd(struct se_cmd *cmd)
    * If this cmd has been setup with target_get_sess_cmd(), drop
    * the kref and call ->release_cmd() in kref callback.
    */
    - return target_put_sess_cmd(cmd->se_sess, cmd);
    + return target_put_sess_cmd(cmd);
    }

    /**
    @@ -2392,13 +2392,12 @@ int transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks)
    EXPORT_SYMBOL(transport_generic_free_cmd);

    /* target_get_sess_cmd - Add command to active ->sess_cmd_list
    - * @se_sess: session to reference
    * @se_cmd: command descriptor to add
    * @ack_kref: Signal that fabric will perform an ack target_put_sess_cmd()
    */
    -int target_get_sess_cmd(struct se_session *se_sess, struct se_cmd *se_cmd,
    - bool ack_kref)
    +int target_get_sess_cmd(struct se_cmd *se_cmd, bool ack_kref)
    {
    + struct se_session *se_sess = se_cmd->se_sess;
    unsigned long flags;
    int ret = 0;

    @@ -2420,7 +2419,7 @@ out:
    spin_unlock_irqrestore(&se_sess->sess_cmd_lock, flags);

    if (ret && ack_kref)
    - target_put_sess_cmd(se_sess, se_cmd);
    + target_put_sess_cmd(se_cmd);

    return ret;
    }
    @@ -2448,11 +2447,12 @@ static void target_release_cmd_kref(struct kref *kref)
    }

    /* target_put_sess_cmd - Check for active I/O shutdown via kref_put
    - * @se_sess: session to reference
    * @se_cmd: command descriptor to drop
    */
    -int target_put_sess_cmd(struct se_session *se_sess, struct se_cmd *se_cmd)
    +int target_put_sess_cmd(struct se_cmd *se_cmd)
    {
    + struct se_session *se_sess = se_cmd->se_sess;
    +
    if (!se_sess) {
    se_cmd->se_tfo->release_cmd(se_cmd);
    return 1;
    diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
    index be0517f..38d63c6 100644
    --- a/drivers/vhost/scsi.c
    +++ b/drivers/vhost/scsi.c
    @@ -596,7 +596,7 @@ static void vhost_scsi_free_cmd(struct tcm_vhost_cmd *cmd)

    static int vhost_scsi_check_stop_free(struct se_cmd *se_cmd)
    {
    - return target_put_sess_cmd(se_cmd->se_sess, se_cmd);
    + return target_put_sess_cmd(se_cmd);
    }

    static void
    diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h
    index 22a4e98e..e21dbdb 100644
    --- a/include/target/target_core_fabric.h
    +++ b/include/target/target_core_fabric.h
    @@ -126,8 +126,8 @@ bool transport_wait_for_tasks(struct se_cmd *);
    int transport_check_aborted_status(struct se_cmd *, int);
    int transport_send_check_condition_and_sense(struct se_cmd *,
    sense_reason_t, int);
    -int target_get_sess_cmd(struct se_session *, struct se_cmd *, bool);
    -int target_put_sess_cmd(struct se_session *, struct se_cmd *);
    +int target_get_sess_cmd(struct se_cmd *, bool);
    +int target_put_sess_cmd(struct se_cmd *);
    void target_sess_cmd_list_set_waiting(struct se_session *);
    void target_wait_for_sess_cmds(struct se_session *);

    --
    2.7.0
    \
     
     \ /
      Last update: 2016-03-09 02:41    [W:3.093 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site