lkml.org 
[lkml]   [2014]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13 091/149] iscsi/iser-target: Use list_del_init for ->i_conn_node
    Date
    3.13-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Nicholas Bellinger <nab@linux-iscsi.org>

    commit 5159d763f60af693a3fcec45dce2021f66e528a4 upstream.

    There are a handful of uses of list_empty() for cmd->i_conn_node
    within iser-target code that expect to return false once a cmd
    has been removed from the per connect list.

    This patch changes all uses of list_del -> list_del_init in order
    to ensure that list_empty() returns false as expected.

    Acked-by: Sagi Grimberg <sagig@mellanox.com>
    Cc: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/infiniband/ulp/isert/ib_isert.c | 6 +++---
    drivers/target/iscsi/iscsi_target.c | 6 +++---
    drivers/target/iscsi/iscsi_target_erl2.c | 16 ++++++++--------
    3 files changed, 14 insertions(+), 14 deletions(-)

    --- a/drivers/infiniband/ulp/isert/ib_isert.c
    +++ b/drivers/infiniband/ulp/isert/ib_isert.c
    @@ -1447,7 +1447,7 @@ isert_put_cmd(struct isert_cmd *isert_cm
    case ISCSI_OP_SCSI_CMD:
    spin_lock_bh(&conn->cmd_lock);
    if (!list_empty(&cmd->i_conn_node))
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    if (cmd->data_direction == DMA_TO_DEVICE)
    @@ -1459,7 +1459,7 @@ isert_put_cmd(struct isert_cmd *isert_cm
    case ISCSI_OP_SCSI_TMFUNC:
    spin_lock_bh(&conn->cmd_lock);
    if (!list_empty(&cmd->i_conn_node))
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    transport_generic_free_cmd(&cmd->se_cmd, 0);
    @@ -1469,7 +1469,7 @@ isert_put_cmd(struct isert_cmd *isert_cm
    case ISCSI_OP_TEXT:
    spin_lock_bh(&conn->cmd_lock);
    if (!list_empty(&cmd->i_conn_node))
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    /*
    --- a/drivers/target/iscsi/iscsi_target.c
    +++ b/drivers/target/iscsi/iscsi_target.c
    @@ -785,7 +785,7 @@ static void iscsit_ack_from_expstatsn(st
    spin_unlock_bh(&conn->cmd_lock);

    list_for_each_entry_safe(cmd, cmd_p, &ack_list, i_conn_node) {
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    iscsit_free_cmd(cmd, false);
    }
    }
    @@ -3708,7 +3708,7 @@ iscsit_immediate_queue(struct iscsi_conn
    break;
    case ISTATE_REMOVE:
    spin_lock_bh(&conn->cmd_lock);
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    iscsit_free_cmd(cmd, false);
    @@ -4151,7 +4151,7 @@ static void iscsit_release_commands_from
    spin_lock_bh(&conn->cmd_lock);
    list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) {

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    iscsit_increment_maxcmdsn(cmd, sess);
    --- a/drivers/target/iscsi/iscsi_target_erl2.c
    +++ b/drivers/target/iscsi/iscsi_target_erl2.c
    @@ -138,7 +138,7 @@ void iscsit_free_connection_recovery_ent
    list_for_each_entry_safe(cmd, cmd_tmp,
    &cr->conn_recovery_cmd_list, i_conn_node) {

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    cmd->conn = NULL;
    spin_unlock(&cr->conn_recovery_cmd_lock);
    iscsit_free_cmd(cmd, true);
    @@ -160,7 +160,7 @@ void iscsit_free_connection_recovery_ent
    list_for_each_entry_safe(cmd, cmd_tmp,
    &cr->conn_recovery_cmd_list, i_conn_node) {

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    cmd->conn = NULL;
    spin_unlock(&cr->conn_recovery_cmd_lock);
    iscsit_free_cmd(cmd, true);
    @@ -216,7 +216,7 @@ int iscsit_remove_cmd_from_connection_re
    }
    cr = cmd->cr;

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    return --cr->cmd_count;
    }

    @@ -297,7 +297,7 @@ int iscsit_discard_unacknowledged_ooo_cm
    if (!(cmd->cmd_flags & ICF_OOO_CMDSN))
    continue;

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);

    spin_unlock_bh(&conn->cmd_lock);
    iscsit_free_cmd(cmd, true);
    @@ -335,7 +335,7 @@ int iscsit_prepare_cmds_for_realligance(
    /*
    * Only perform connection recovery on ISCSI_OP_SCSI_CMD or
    * ISCSI_OP_NOOP_OUT opcodes. For all other opcodes call
    - * list_del(&cmd->i_conn_node); to release the command to the
    + * list_del_init(&cmd->i_conn_node); to release the command to the
    * session pool and remove it from the connection's list.
    *
    * Also stop the DataOUT timer, which will be restarted after
    @@ -351,7 +351,7 @@ int iscsit_prepare_cmds_for_realligance(
    " CID: %hu\n", cmd->iscsi_opcode,
    cmd->init_task_tag, cmd->cmd_sn, conn->cid);

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);
    iscsit_free_cmd(cmd, true);
    spin_lock_bh(&conn->cmd_lock);
    @@ -371,7 +371,7 @@ int iscsit_prepare_cmds_for_realligance(
    */
    if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd &&
    iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) {
    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);
    iscsit_free_cmd(cmd, true);
    spin_lock_bh(&conn->cmd_lock);
    @@ -393,7 +393,7 @@ int iscsit_prepare_cmds_for_realligance(

    cmd->sess = conn->sess;

    - list_del(&cmd->i_conn_node);
    + list_del_init(&cmd->i_conn_node);
    spin_unlock_bh(&conn->cmd_lock);

    iscsit_free_all_datain_reqs(cmd);



    \
     
     \ /
      Last update: 2014-03-21 03:01    [W:6.668 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site