Re: [PATCH] target, iscsi: Fix up a few assignments

From: Nicholas A. Bellinger
Date: Mon Jan 16 2012 - 21:30:06 EST


On Sun, 2012-01-15 at 19:33 +0100, Jesper Juhl wrote:
> A statement such as
> struct iscsi_node_attrib *na = na = iscsit_tpg_get_node_attrib(sess);
> has undefined behaviour since there are two assignments to 'na', strictly
> speaking (the order in which side-effects from the assignments take place
> is undefined since there's no intervening sequence point), and it looks
> unintentional in any case.
>
> Signed-off-by: Jesper Juhl <jj@xxxxxxxxxxxxx>
> ---
> drivers/target/iscsi/iscsi_target_erl1.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> compile tested only.
>
> diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c
> index 101b1be..af18cb8 100644
> --- a/drivers/target/iscsi/iscsi_target_erl1.c
> +++ b/drivers/target/iscsi/iscsi_target_erl1.c
> @@ -1238,7 +1238,7 @@ void iscsit_mod_dataout_timer(struct iscsi_cmd *cmd)
> {
> struct iscsi_conn *conn = cmd->conn;
> struct iscsi_session *sess = conn->sess;
> - struct iscsi_node_attrib *na = na = iscsit_tpg_get_node_attrib(sess);
> + struct iscsi_node_attrib *na = iscsit_tpg_get_node_attrib(sess);
>
> spin_lock_bh(&cmd->dataout_timeout_lock);
> if (!(cmd->dataout_timer_flags & ISCSI_TF_RUNNING)) {
> @@ -1261,7 +1261,7 @@ void iscsit_start_dataout_timer(
> struct iscsi_conn *conn)
> {
> struct iscsi_session *sess = conn->sess;
> - struct iscsi_node_attrib *na = na = iscsit_tpg_get_node_attrib(sess);
> + struct iscsi_node_attrib *na = iscsit_tpg_get_node_attrib(sess);
>
> if (cmd->dataout_timer_flags & ISCSI_TF_RUNNING)
> return;
> --

Copy and paste error. :(

Applied to lio-core, and thanks for catching this Jesper!


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/