Hello Nick! I have some patches pending that I should really send out. Is it ok to develop against current Linus or do you have a different tree you want patches to apply to? Sample patch is below - since it is script-generated, it should easily apply to pretty much any tree, after checking for correctness. Jörn -- Geld macht nicht glücklich. Glück macht nicht satt. Subject: [PATCH] target: turn atomic_t vars into plain int The variables in question are only ever accessed through atomic_set() or atomic_read(). In other words, they are plain integers. In fact, they are only ever set to 0 or 1, making them bool. Conversion was done with the following shell-script: FILES=`find drivers/target/ -name "*.[ch]"; find include/target/ -name "*.[ch]"` VARS="\(check_immediate_queue\|conn_logout_remove\|connection_exit\|connection_recovery\|connection_reinstatement\|connection_wait_rcfr\|sleep_on_conn_wait_comp\|transport_failed\|session_continuation\|session_fall_back_to_erl0\|session_logout\|session_reinstatement\|session_stop_active\|sleep_on_sess_wait_comp\|t_transport_active\|t_transport_complete\|t_transport_queue_active\|t_transport_sent\|t_transport_stop\|transport_dev_active\|transport_lun_active\|transport_lun_fe_stop\|transport_lun_stop\|tmr_complete\|sep_tg_pt_secondary_offline\|task_state_active\)" for FILE in $FILES; do sed -i "s/atomic_t\([ ]*$VARS;\)/int \1/" $FILE sed -i "s/atomic_read(&\(.*[.>]$VARS\))/\1/" $FILE sed -i "s/atomic_set(&\(.*[.>]$VARS\), \([0-9]*\))/\1 = \3/" $FILE done Signed-off-by: Joern Engel <joern@xxxxxxxxx> --- drivers/target/iscsi/iscsi_target.c | 74 ++++++++++---------- drivers/target/iscsi/iscsi_target_configfs.c | 6 +- drivers/target/iscsi/iscsi_target_erl0.c | 26 ++++---- drivers/target/iscsi/iscsi_target_erl1.c | 2 +- drivers/target/iscsi/iscsi_target_erl2.c | 2 +- drivers/target/iscsi/iscsi_target_login.c | 16 ++-- drivers/target/iscsi/iscsi_target_tmr.c | 6 +- drivers/target/iscsi/iscsi_target_util.c | 4 +- drivers/target/loopback/tcm_loop.c | 4 +- drivers/target/loopback/tcm_loop.h | 2 +- drivers/target/target_core_alua.c | 12 ++-- drivers/target/target_core_device.c | 4 +- drivers/target/target_core_tmr.c | 14 ++-- drivers/target/target_core_transport.c | 96 +++++++++++++------------- 14 files changed, 134 insertions(+), 134 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c index 0fd96c1..6af7ddc 100644 --- a/drivers/target/iscsi/iscsi_target.c +++ b/drivers/target/iscsi/iscsi_target.c @@ -2017,8 +2017,8 @@ int iscsit_logout_closesession(struct iscsi_cmd *cmd, struct iscsi_conn *conn) pr_debug("Received logout request CLOSESESSION on CID: %hu" " for SID: %u.\n", conn->cid, conn->sess->sid); - atomic_set(&sess->session_logout, 1); - atomic_set(&conn->conn_logout_remove, 1); + sess->session_logout = 1; + conn->conn_logout_remove = 1; conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_SESSION; iscsit_inc_conn_usage_count(conn); @@ -2056,7 +2056,7 @@ int iscsit_logout_closeconnection(struct iscsi_cmd *cmd, struct iscsi_conn *conn pr_debug("Moving to TARG_CONN_STATE_IN_LOGOUT.\n"); conn->conn_state = TARG_CONN_STATE_IN_LOGOUT; - atomic_set(&conn->conn_logout_remove, 1); + conn->conn_logout_remove = 1; conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_CONNECTION; iscsit_inc_conn_usage_count(conn); @@ -3520,7 +3520,7 @@ restart: get_immediate: qr = iscsit_get_cmd_from_immediate_queue(conn); if (qr) { - atomic_set(&conn->check_immediate_queue, 0); + conn->check_immediate_queue = 0; cmd = qr->cmd; state = qr->state; kmem_cache_free(lio_qr_cache, qr); @@ -3758,7 +3758,7 @@ check_rsp_state: } spin_unlock_bh(&cmd->istate_lock); - if (atomic_read(&conn->check_immediate_queue)) + if (conn->check_immediate_queue) goto get_immediate; goto get_response; @@ -3923,7 +3923,7 @@ restart: transport_err: if (!signal_pending(current)) - atomic_set(&conn->transport_failed, 1); + conn->transport_failed = 1; iscsit_take_action_for_connection_exit(conn); goto restart; out: @@ -3998,7 +3998,7 @@ int iscsit_close_connection( * do not free the struct iscsi_ooo_cmdsn's) and release all * struct iscsi_cmds. */ - if (atomic_read(&conn->connection_recovery)) { + if (conn->connection_recovery) { iscsit_discard_unacknowledged_ooo_cmdsns_for_conn(conn); iscsit_prepare_cmds_for_realligance(conn); } else { @@ -4011,7 +4011,7 @@ int iscsit_close_connection( * a logout response was not able to be sent because the * connection failed. Fall back to Session Recovery here. */ - if (atomic_read(&conn->conn_logout_remove)) { + if (conn->conn_logout_remove) { if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_SESSION) { iscsit_dec_conn_usage_count(conn); iscsit_dec_session_usage_count(sess); @@ -4019,9 +4019,9 @@ int iscsit_close_connection( if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_CONNECTION) iscsit_dec_conn_usage_count(conn); - atomic_set(&conn->conn_logout_remove, 0); - atomic_set(&sess->session_reinstatement, 0); - atomic_set(&sess->session_fall_back_to_erl0, 1); + conn->conn_logout_remove = 0; + sess->session_reinstatement = 0; + sess->session_fall_back_to_erl0 = 1; } spin_lock_bh(&sess->conn_lock); @@ -4032,7 +4032,7 @@ int iscsit_close_connection( * sending an Connection Dropped Async Message on another * active connection. */ - if (atomic_read(&conn->connection_recovery)) + if (conn->connection_recovery) iscsit_build_conn_drop_async_message(conn); spin_unlock_bh(&sess->conn_lock); @@ -4043,7 +4043,7 @@ int iscsit_close_connection( * in iscsit_cause_connection_reinstatement(). */ spin_lock_bh(&conn->state_lock); - if (atomic_read(&conn->sleep_on_conn_wait_comp)) { + if (conn->sleep_on_conn_wait_comp) { spin_unlock_bh(&conn->state_lock); complete(&conn->conn_wait_comp); wait_for_completion(&conn->conn_post_wait_comp); @@ -4056,13 +4056,13 @@ int iscsit_close_connection( * connection wait rcfr semaphore that is being blocked on * an iscsit_connection_reinstatement_rcfr(). */ - if (atomic_read(&conn->connection_wait_rcfr)) { + if (conn->connection_wait_rcfr) { spin_unlock_bh(&conn->state_lock); complete(&conn->conn_wait_rcfr_comp); wait_for_completion(&conn->conn_post_wait_comp); spin_lock_bh(&conn->state_lock); } - atomic_set(&conn->connection_reinstatement, 1); + conn->connection_reinstatement = 1; spin_unlock_bh(&conn->state_lock); /* @@ -4105,8 +4105,8 @@ int iscsit_close_connection( * Session that they all fail. */ if ((sess->sess_ops->ErrorRecoveryLevel != 2) && !conn_logout && - !atomic_read(&sess->session_logout)) - atomic_set(&sess->session_fall_back_to_erl0, 1); + !sess->session_logout) + sess->session_fall_back_to_erl0 = 1; /* * If this was not the last connection in the session, and we are @@ -4115,13 +4115,13 @@ int iscsit_close_connection( * active connections. */ if (atomic_read(&sess->nconn)) { - if (!atomic_read(&sess->session_reinstatement) && - !atomic_read(&sess->session_fall_back_to_erl0)) { + if (!sess->session_reinstatement && + !sess->session_fall_back_to_erl0) { spin_unlock_bh(&sess->conn_lock); return 0; } - if (!atomic_read(&sess->session_stop_active)) { - atomic_set(&sess->session_stop_active, 1); + if (!sess->session_stop_active) { + sess->session_stop_active = 1; spin_unlock_bh(&sess->conn_lock); iscsit_stop_session(sess, 0, 0); return 0; @@ -4143,18 +4143,18 @@ int iscsit_close_connection( * Session Continuation is not being performed, start the Time2Retain * handler and check if sleep_on_sess_wait_sem is active. */ - if (!atomic_read(&sess->session_reinstatement) && - atomic_read(&sess->session_fall_back_to_erl0)) { + if (!sess->session_reinstatement && + sess->session_fall_back_to_erl0) { spin_unlock_bh(&sess->conn_lock); iscsit_close_session(sess); return 0; - } else if (atomic_read(&sess->session_logout)) { + } else if (sess->session_logout) { pr_debug("Moving to TARG_SESS_STATE_FREE.\n"); sess->session_state = TARG_SESS_STATE_FREE; spin_unlock_bh(&sess->conn_lock); - if (atomic_read(&sess->sleep_on_sess_wait_comp)) + if (sess->sleep_on_sess_wait_comp) complete(&sess->session_wait_comp); return 0; @@ -4162,13 +4162,13 @@ int iscsit_close_connection( pr_debug("Moving to TARG_SESS_STATE_FAILED.\n"); sess->session_state = TARG_SESS_STATE_FAILED; - if (!atomic_read(&sess->session_continuation)) { + if (!sess->session_continuation) { spin_unlock_bh(&sess->conn_lock); iscsit_start_time2retain_handler(sess); } else spin_unlock_bh(&sess->conn_lock); - if (atomic_read(&sess->sleep_on_sess_wait_comp)) + if (sess->sleep_on_sess_wait_comp) complete(&sess->session_wait_comp); return 0; @@ -4191,8 +4191,8 @@ int iscsit_close_session(struct iscsi_session *sess) } spin_lock_bh(&se_tpg->session_lock); - atomic_set(&sess->session_logout, 1); - atomic_set(&sess->session_reinstatement, 1); + sess->session_logout = 1; + sess->session_reinstatement = 1; iscsit_stop_time2retain_timer(sess); spin_unlock_bh(&se_tpg->session_lock); @@ -4216,7 +4216,7 @@ int iscsit_close_session(struct iscsi_session *sess) iscsit_stop_session(sess, 1, 1); } else { if (iscsit_check_session_usage_count(sess) == 2) { - atomic_set(&sess->session_logout, 0); + sess->session_logout = 0; iscsit_start_time2retain_handler(sess); return 0; } @@ -4261,7 +4261,7 @@ static void iscsit_logout_post_handler_closesession( iscsi_set_thread_clear(conn, ISCSI_CLEAR_TX_THREAD); iscsi_set_thread_set_signal(conn, ISCSI_SIGNAL_TX_THREAD); - atomic_set(&conn->conn_logout_remove, 0); + conn->conn_logout_remove = 0; complete(&conn->conn_logout_comp); iscsit_dec_conn_usage_count(conn); @@ -4276,7 +4276,7 @@ static void iscsit_logout_post_handler_samecid( iscsi_set_thread_clear(conn, ISCSI_CLEAR_TX_THREAD); iscsi_set_thread_set_signal(conn, ISCSI_SIGNAL_TX_THREAD); - atomic_set(&conn->conn_logout_remove, 0); + conn->conn_logout_remove = 0; complete(&conn->conn_logout_comp); iscsit_cause_connection_reinstatement(conn, 1); @@ -4401,7 +4401,7 @@ int iscsit_free_session(struct iscsi_session *sess) int is_last; spin_lock_bh(&sess->conn_lock); - atomic_set(&sess->sleep_on_sess_wait_comp, 1); + sess->sleep_on_sess_wait_comp = 1; list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, conn_list) { @@ -4448,7 +4448,7 @@ void iscsit_stop_session( spin_lock_bh(&sess->conn_lock); if (session_sleep) - atomic_set(&sess->sleep_on_sess_wait_comp, 1); + sess->sleep_on_sess_wait_comp = 1; if (connection_sleep) { list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, @@ -4503,13 +4503,13 @@ int iscsit_release_sessions_for_tpg(struct iscsi_portal_group *tpg, int force) sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; spin_lock(&sess->conn_lock); - if (atomic_read(&sess->session_fall_back_to_erl0) || - atomic_read(&sess->session_logout) || + if (sess->session_fall_back_to_erl0 || + sess->session_logout || (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { spin_unlock(&sess->conn_lock); continue; } - atomic_set(&sess->session_reinstatement, 1); + sess->session_reinstatement = 1; spin_unlock(&sess->conn_lock); spin_unlock_bh(&se_tpg->session_lock); diff --git a/drivers/target/iscsi/iscsi_target_configfs.c b/drivers/target/iscsi/iscsi_target_configfs.c index db32784..7c510d5 100644 --- a/drivers/target/iscsi/iscsi_target_configfs.c +++ b/drivers/target/iscsi/iscsi_target_configfs.c @@ -1695,13 +1695,13 @@ static int lio_tpg_shutdown_session(struct se_session *se_sess) struct iscsi_session *sess = se_sess->fabric_sess_ptr; spin_lock(&sess->conn_lock); - if (atomic_read(&sess->session_fall_back_to_erl0) || - atomic_read(&sess->session_logout) || + if (sess->session_fall_back_to_erl0 || + sess->session_logout || (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { spin_unlock(&sess->conn_lock); return 0; } - atomic_set(&sess->session_reinstatement, 1); + sess->session_reinstatement = 1; spin_unlock(&sess->conn_lock); iscsit_inc_session_usage_count(sess); diff --git a/drivers/target/iscsi/iscsi_target_erl0.c b/drivers/target/iscsi/iscsi_target_erl0.c index b7ffc3c..c163b87 100644 --- a/drivers/target/iscsi/iscsi_target_erl0.c +++ b/drivers/target/iscsi/iscsi_target_erl0.c @@ -757,7 +757,7 @@ static void iscsit_handle_time2retain_timeout(unsigned long data) spin_unlock_bh(&se_tpg->session_lock); return; } - if (atomic_read(&sess->session_reinstatement)) { + if (sess->session_reinstatement) { pr_err("Exiting Time2Retain handler because" " session_reinstatement=1\n"); spin_unlock_bh(&se_tpg->session_lock); @@ -845,12 +845,12 @@ extern int iscsit_stop_time2retain_timer(struct iscsi_session *sess) void iscsit_connection_reinstatement_rcfr(struct iscsi_conn *conn) { spin_lock_bh(&conn->state_lock); - if (atomic_read(&conn->connection_exit)) { + if (conn->connection_exit) { spin_unlock_bh(&conn->state_lock); goto sleep; } - if (atomic_read(&conn->transport_failed)) { + if (conn->transport_failed) { spin_unlock_bh(&conn->state_lock); goto sleep; } @@ -866,17 +866,17 @@ sleep: void iscsit_cause_connection_reinstatement(struct iscsi_conn *conn, int sleep) { spin_lock_bh(&conn->state_lock); - if (atomic_read(&conn->connection_exit)) { + if (conn->connection_exit) { spin_unlock_bh(&conn->state_lock); return; } - if (atomic_read(&conn->transport_failed)) { + if (conn->transport_failed) { spin_unlock_bh(&conn->state_lock); return; } - if (atomic_read(&conn->connection_reinstatement)) { + if (conn->connection_reinstatement) { spin_unlock_bh(&conn->state_lock); return; } @@ -886,13 +886,13 @@ void iscsit_cause_connection_reinstatement(struct iscsi_conn *conn, int sleep) return; } - atomic_set(&conn->connection_reinstatement, 1); + conn->connection_reinstatement = 1; if (!sleep) { spin_unlock_bh(&conn->state_lock); return; } - atomic_set(&conn->sleep_on_conn_wait_comp, 1); + conn->sleep_on_conn_wait_comp = 1; spin_unlock_bh(&conn->state_lock); wait_for_completion(&conn->conn_wait_comp); @@ -904,7 +904,7 @@ void iscsit_fall_back_to_erl0(struct iscsi_session *sess) pr_debug("Falling back to ErrorRecoveryLevel=0 for SID:" " %u\n", sess->sid); - atomic_set(&sess->session_fall_back_to_erl0, 1); + sess->session_fall_back_to_erl0 = 1; } static void iscsit_handle_connection_cleanup(struct iscsi_conn *conn) @@ -912,8 +912,8 @@ static void iscsit_handle_connection_cleanup(struct iscsi_conn *conn) struct iscsi_session *sess = conn->sess; if ((sess->sess_ops->ErrorRecoveryLevel == 2) && - !atomic_read(&sess->session_reinstatement) && - !atomic_read(&sess->session_fall_back_to_erl0)) + !sess->session_reinstatement && + !sess->session_fall_back_to_erl0) iscsit_connection_recovery_transport_reset(conn); else { pr_debug("Performing cleanup for failed iSCSI" @@ -926,11 +926,11 @@ static void iscsit_handle_connection_cleanup(struct iscsi_conn *conn) extern void iscsit_take_action_for_connection_exit(struct iscsi_conn *conn) { spin_lock_bh(&conn->state_lock); - if (atomic_read(&conn->connection_exit)) { + if (conn->connection_exit) { spin_unlock_bh(&conn->state_lock); return; } - atomic_set(&conn->connection_exit, 1); + conn->connection_exit = 1; if (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT) { spin_unlock_bh(&conn->state_lock); diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c index c4c68da..7fc325b 100644 --- a/drivers/target/iscsi/iscsi_target_erl1.c +++ b/drivers/target/iscsi/iscsi_target_erl1.c @@ -416,7 +416,7 @@ static int iscsit_handle_recovery_datain( struct iscsi_datain_req *dr; struct se_cmd *se_cmd = &cmd->se_cmd; - if (!atomic_read(&se_cmd->t_transport_complete)) { + if (!se_cmd->t_transport_complete) { pr_err("Ignoring ITT: 0x%08x Data SNACK\n", cmd->init_task_tag); return 0; diff --git a/drivers/target/iscsi/iscsi_target_erl2.c b/drivers/target/iscsi/iscsi_target_erl2.c index 0b8404c..dda2991 100644 --- a/drivers/target/iscsi/iscsi_target_erl2.c +++ b/drivers/target/iscsi/iscsi_target_erl2.c @@ -430,7 +430,7 @@ int iscsit_prepare_cmds_for_realligance(struct iscsi_conn *conn) int iscsit_connection_recovery_transport_reset(struct iscsi_conn *conn) { - atomic_set(&conn->connection_recovery, 1); + conn->connection_recovery = 1; if (iscsit_close_connection(conn) < 0) return -1; diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index daad362..e6540c7 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -145,8 +145,8 @@ int iscsi_check_for_session_reinstatement(struct iscsi_conn *conn) sess_p = (struct iscsi_session *)se_sess->fabric_sess_ptr; spin_lock(&sess_p->conn_lock); - if (atomic_read(&sess_p->session_fall_back_to_erl0) || - atomic_read(&sess_p->session_logout) || + if (sess_p->session_fall_back_to_erl0 || + sess_p->session_logout || (sess_p->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { spin_unlock(&sess_p->conn_lock); continue; @@ -155,7 +155,7 @@ int iscsi_check_for_session_reinstatement(struct iscsi_conn *conn) (!strcmp((void *)sess_p->sess_ops->InitiatorName, (void *)initiatorname_param->value) && (sess_p->sess_ops->SessionType == sessiontype))) { - atomic_set(&sess_p->session_reinstatement, 1); + sess_p->session_reinstatement = 1; spin_unlock(&sess_p->conn_lock); iscsit_inc_session_usage_count(sess_p); iscsit_stop_time2retain_timer(sess_p); @@ -433,8 +433,8 @@ static int iscsi_login_non_zero_tsih_s2( sess_list) { sess_p = (struct iscsi_session *)se_sess->fabric_sess_ptr; - if (atomic_read(&sess_p->session_fall_back_to_erl0) || - atomic_read(&sess_p->session_logout) || + if (sess_p->session_fall_back_to_erl0 || + sess_p->session_logout || (sess_p->time2retain_timer_flags & ISCSI_TF_EXPIRED)) continue; if (!memcmp((const void *)sess_p->isid, @@ -465,7 +465,7 @@ static int iscsi_login_non_zero_tsih_s2( */ spin_lock_bh(&sess->conn_lock); if (sess->session_state == TARG_SESS_STATE_FAILED) - atomic_set(&sess->session_continuation, 1); + sess->session_continuation = 1; spin_unlock_bh(&sess->conn_lock); iscsi_login_set_conn_values(sess, conn, pdu->cid); @@ -604,7 +604,7 @@ static int iscsi_post_login_handler( conn->param_list = NULL; spin_lock_bh(&sess->conn_lock); - atomic_set(&sess->session_continuation, 0); + sess->session_continuation = 0; if (sess->session_state == TARG_SESS_STATE_FAILED) { pr_debug("Moving to" " TARG_SESS_STATE_LOGGED_IN.\n"); @@ -1145,7 +1145,7 @@ old_sess_out: struct se_portal_group *se_tpg = &ISCSI_TPG_C(conn)->tpg_se_tpg; - atomic_set(&conn->sess->session_continuation, 0); + conn->sess->session_continuation = 0; spin_unlock_bh(&conn->sess->conn_lock); spin_lock_bh(&se_tpg->session_lock); iscsit_start_time2retain_handler(conn->sess); diff --git a/drivers/target/iscsi/iscsi_target_tmr.c b/drivers/target/iscsi/iscsi_target_tmr.c index 490207e..383988a 100644 --- a/drivers/target/iscsi/iscsi_target_tmr.c +++ b/drivers/target/iscsi/iscsi_target_tmr.c @@ -250,7 +250,7 @@ static int iscsit_task_reassign_complete_write( * so if we have received all DataOUT we can safety ignore Initiator. */ if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) { - if (!atomic_read(&cmd->se_cmd.t_transport_sent)) { + if (!cmd->se_cmd.t_transport_sent) { pr_debug("WRITE ITT: 0x%08x: t_state: %d" " never sent to transport\n", cmd->init_task_tag, cmd->se_cmd.t_state); @@ -314,7 +314,7 @@ static int iscsit_task_reassign_complete_read( cmd->acked_data_sn = (tmr_req->exp_data_sn - 1); } - if (!atomic_read(&cmd->se_cmd.t_transport_sent)) { + if (!cmd->se_cmd.t_transport_sent) { pr_debug("READ ITT: 0x%08x: t_state: %d never sent to" " transport\n", cmd->init_task_tag, cmd->se_cmd.t_state); @@ -322,7 +322,7 @@ static int iscsit_task_reassign_complete_read( return 0; } - if (!atomic_read(&se_cmd->t_transport_complete)) { + if (!se_cmd->t_transport_complete) { pr_err("READ ITT: 0x%08x: t_state: %d, never returned" " from transport\n", cmd->init_task_tag, cmd->se_cmd.t_state); diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c index 02348f7..94937ff 100644 --- a/drivers/target/iscsi/iscsi_target_util.c +++ b/drivers/target/iscsi/iscsi_target_util.c @@ -656,7 +656,7 @@ void iscsit_add_cmd_to_immediate_queue( spin_lock_bh(&conn->immed_queue_lock); list_add_tail(&qr->qr_list, &conn->immed_queue_list); atomic_inc(&cmd->immed_queue_count); - atomic_set(&conn->check_immediate_queue, 1); + conn->check_immediate_queue = 1; spin_unlock_bh(&conn->immed_queue_lock); wake_up_process(conn->thread_set->tx_thread); @@ -967,7 +967,7 @@ struct iscsi_conn *iscsit_get_conn_from_cid_rcfr(struct iscsi_session *sess, u16 if (conn->cid == cid) { iscsit_inc_conn_usage_count(conn); spin_lock(&conn->state_lock); - atomic_set(&conn->connection_wait_rcfr, 1); + conn->connection_wait_rcfr = 1; spin_unlock(&conn->state_lock); spin_unlock_bh(&sess->conn_lock); return conn; diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c index 3df1c9b..0cc8d6f 100644 --- a/drivers/target/loopback/tcm_loop.c +++ b/drivers/target/loopback/tcm_loop.c @@ -407,7 +407,7 @@ static int tcm_loop_device_reset(struct scsi_cmnd *sc) * to wake us up. */ transport_generic_handle_tmr(se_cmd); - wait_event(tl_tmr->tl_tmr_wait, atomic_read(&tl_tmr->tmr_complete)); + wait_event(tl_tmr->tl_tmr_wait, tl_tmr->tmr_complete); /* * The TMR LUN_RESET has completed, check the response status and * then release allocations. @@ -923,7 +923,7 @@ static int tcm_loop_queue_tm_rsp(struct se_cmd *se_cmd) * The SCSI EH thread will be sleeping on se_tmr->tl_tmr_wait, go ahead * and wake up the wait_queue_head_t in tcm_loop_device_reset() */ - atomic_set(&tl_tmr->tmr_complete, 1); + tl_tmr->tmr_complete = 1; wake_up(&tl_tmr->tl_tmr_wait); return 0; } diff --git a/drivers/target/loopback/tcm_loop.h b/drivers/target/loopback/tcm_loop.h index 6b76c7a..a92052c 100644 --- a/drivers/target/loopback/tcm_loop.h +++ b/drivers/target/loopback/tcm_loop.h @@ -29,7 +29,7 @@ struct tcm_loop_cmd { }; struct tcm_loop_tmr { - atomic_t tmr_complete; + int tmr_complete; wait_queue_head_t tl_tmr_wait; }; diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c index 88f2ad4..7f07ebf 100644 --- a/drivers/target/target_core_alua.c +++ b/drivers/target/target_core_alua.c @@ -529,7 +529,7 @@ static int core_alua_state_check( * First, check for a struct se_port specific secondary ALUA target port * access state: OFFLINE */ - if (atomic_read(&port->sep_tg_pt_secondary_offline)) { + if (port->sep_tg_pt_secondary_offline) { *alua_ascq = ASCQ_04H_ALUA_OFFLINE; pr_debug("ALUA: Got secondary offline status for local" " target port\n"); @@ -1003,7 +1003,7 @@ static int core_alua_update_tpg_secondary_metadata( len = snprintf(md_buf, md_buf_len, "alua_tg_pt_offline=%d\n" "alua_tg_pt_status=0x%02x\n", - atomic_read(&port->sep_tg_pt_secondary_offline), + port->sep_tg_pt_secondary_offline, port->sep_tg_pt_secondary_stat); snprintf(path, ALUA_METADATA_PATH_LEN, "/var/target/alua/%s/%s/lun_%u", @@ -1038,9 +1038,9 @@ static int core_alua_set_tg_pt_secondary_state( * or release the previously secondary state for struct se_port */ if (offline) - atomic_set(&port->sep_tg_pt_secondary_offline, 1); + port->sep_tg_pt_secondary_offline = 1; else - atomic_set(&port->sep_tg_pt_secondary_offline, 0); + port->sep_tg_pt_secondary_offline = 0; md_buf_len = tg_pt_gp->tg_pt_gp_md_buf_len; port->sep_tg_pt_secondary_stat = (explict) ? @@ -1633,7 +1633,7 @@ ssize_t core_alua_show_tg_pt_gp_info(struct se_port *port, char *page) &tg_pt_gp->tg_pt_gp_alua_access_state)), core_alua_dump_status( tg_pt_gp->tg_pt_gp_alua_access_status), - (atomic_read(&port->sep_tg_pt_secondary_offline)) ? + (port->sep_tg_pt_secondary_offline) ? "Offline" : "None", core_alua_dump_status(port->sep_tg_pt_secondary_stat)); } @@ -1887,7 +1887,7 @@ ssize_t core_alua_show_offline_bit(struct se_lun *lun, char *page) return -ENODEV; return sprintf(page, "%d\n", - atomic_read(&lun->lun_sep->sep_tg_pt_secondary_offline)); + lun->lun_sep->sep_tg_pt_secondary_offline); } ssize_t core_alua_store_offline_bit( diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index ba5edec..f7d1a2e 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -169,7 +169,7 @@ int transport_lookup_cmd_lun(struct se_cmd *se_cmd, u32 unpacked_lun) */ spin_lock_irqsave(&se_lun->lun_cmd_lock, flags); list_add_tail(&se_cmd->se_lun_node, &se_lun->lun_cmd_list); - atomic_set(&se_cmd->transport_lun_active, 1); + se_cmd->transport_lun_active = 1; spin_unlock_irqrestore(&se_lun->lun_cmd_lock, flags); return 0; @@ -508,7 +508,7 @@ static struct se_port *core_alloc_port(struct se_device *dev) } INIT_LIST_HEAD(&port->sep_alua_list); INIT_LIST_HEAD(&port->sep_list); - atomic_set(&port->sep_tg_pt_secondary_offline, 0); + port->sep_tg_pt_secondary_offline = 0; spin_lock_init(&port->sep_alua_lock); mutex_init(&port->sep_tg_pt_md_mutex); diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c index 217e29d..1d740e0 100644 --- a/drivers/target/target_core_tmr.c +++ b/drivers/target/target_core_tmr.c @@ -138,7 +138,7 @@ static void core_tmr_drain_tmr_list( continue; spin_lock(&cmd->t_state_lock); - if (!atomic_read(&cmd->t_transport_active)) { + if (!cmd->t_transport_active) { spin_unlock(&cmd->t_state_lock); continue; } @@ -222,7 +222,7 @@ static void core_tmr_drain_task_list( continue; list_move_tail(&task->t_state_list, &drain_task_list); - atomic_set(&task->task_state_active, 0); + task->task_state_active = 0; /* * Remove from task execute list before processing drain_task_list */ @@ -251,9 +251,9 @@ static void core_tmr_drain_task_list( cmd->t_task_list_num, atomic_read(&cmd->t_task_cdbs_left), atomic_read(&cmd->t_task_cdbs_sent), - atomic_read(&cmd->t_transport_active), - atomic_read(&cmd->t_transport_stop), - atomic_read(&cmd->t_transport_sent)); + cmd->t_transport_active, + cmd->t_transport_stop, + cmd->t_transport_sent); /* * If the command may be queued onto a workqueue cancel it now. @@ -277,7 +277,7 @@ static void core_tmr_drain_task_list( } fe_count = atomic_read(&cmd->t_fe_count); - if (atomic_read(&cmd->t_transport_active)) { + if (cmd->t_transport_active) { pr_debug("LUN_RESET: got t_transport_active = 1 for" " task: %p, t_fe_count: %d dev: %p\n", task, fe_count, dev); @@ -331,7 +331,7 @@ static void core_tmr_drain_cmd_list( if (prout_cmd == cmd) continue; - atomic_set(&cmd->t_transport_queue_active, 0); + cmd->t_transport_queue_active = 0; atomic_dec(&qobj->queue_cnt); list_move_tail(&cmd->se_queue_node, &drain_cmd_list); } diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 3400ae6..d534495 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -436,7 +436,7 @@ static void transport_all_task_dev_remove_state(struct se_cmd *cmd) if (task->task_flags & TF_ACTIVE) continue; - if (!atomic_read(&task->task_state_active)) + if (!task->task_state_active) continue; spin_lock_irqsave(&dev->execute_task_lock, flags); @@ -445,7 +445,7 @@ static void transport_all_task_dev_remove_state(struct se_cmd *cmd) cmd->se_tfo->get_task_tag(cmd), dev, task); spin_unlock_irqrestore(&dev->execute_task_lock, flags); - atomic_set(&task->task_state_active, 0); + task->task_state_active = 0; atomic_dec(&cmd->t_task_cdbs_ex_left); } } @@ -470,12 +470,12 @@ static int transport_cmd_check_stop( * Determine if IOCTL context caller in requesting the stopping of this * command for LUN shutdown purposes. */ - if (atomic_read(&cmd->transport_lun_stop)) { - pr_debug("%s:%d atomic_read(&cmd->transport_lun_stop)" + if (cmd->transport_lun_stop) { + pr_debug("%s:%d cmd->transport_lun_stop" " == TRUE for ITT: 0x%08x\n", __func__, __LINE__, cmd->se_tfo->get_task_tag(cmd)); - atomic_set(&cmd->t_transport_active, 0); + cmd->t_transport_active = 0; if (transport_off == 2) transport_all_task_dev_remove_state(cmd); spin_unlock_irqrestore(&cmd->t_state_lock, flags); @@ -487,8 +487,8 @@ static int transport_cmd_check_stop( * Determine if frontend context caller is requesting the stopping of * this command for frontend exceptions. */ - if (atomic_read(&cmd->t_transport_stop)) { - pr_debug("%s:%d atomic_read(&cmd->t_transport_stop) ==" + if (cmd->t_transport_stop) { + pr_debug("%s:%d cmd->t_transport_stop ==" " TRUE for ITT: 0x%08x\n", __func__, __LINE__, cmd->se_tfo->get_task_tag(cmd)); @@ -507,7 +507,7 @@ static int transport_cmd_check_stop( return 1; } if (transport_off) { - atomic_set(&cmd->t_transport_active, 0); + cmd->t_transport_active = 0; if (transport_off == 2) { transport_all_task_dev_remove_state(cmd); /* @@ -555,20 +555,20 @@ static void transport_lun_remove_cmd(struct se_cmd *cmd) return; spin_lock_irqsave(&cmd->t_state_lock, flags); - if (!atomic_read(&cmd->transport_dev_active)) { + if (!cmd->transport_dev_active) { spin_unlock_irqrestore(&cmd->t_state_lock, flags); goto check_lun; } - atomic_set(&cmd->transport_dev_active, 0); + cmd->transport_dev_active = 0; transport_all_task_dev_remove_state(cmd); spin_unlock_irqrestore(&cmd->t_state_lock, flags); check_lun: spin_lock_irqsave(&lun->lun_cmd_lock, flags); - if (atomic_read(&cmd->transport_lun_active)) { + if (cmd->transport_lun_active) { list_del(&cmd->se_lun_node); - atomic_set(&cmd->transport_lun_active, 0); + cmd->transport_lun_active = 0; #if 0 pr_debug("Removed ITT: 0x%08x from LUN LIST[%d]\n" cmd->se_tfo->get_task_tag(cmd), lun->unpacked_lun); @@ -600,7 +600,7 @@ static void transport_add_cmd_to_queue(struct se_cmd *cmd, int t_state, if (t_state) { spin_lock_irqsave(&cmd->t_state_lock, flags); cmd->t_state = t_state; - atomic_set(&cmd->t_transport_active, 1); + cmd->t_transport_active = 1; spin_unlock_irqrestore(&cmd->t_state_lock, flags); } @@ -616,7 +616,7 @@ static void transport_add_cmd_to_queue(struct se_cmd *cmd, int t_state, list_add(&cmd->se_queue_node, &qobj->qobj_list); else list_add_tail(&cmd->se_queue_node, &qobj->qobj_list); - atomic_set(&cmd->t_transport_queue_active, 1); + cmd->t_transport_queue_active = 1; spin_unlock_irqrestore(&qobj->cmd_queue_lock, flags); wake_up_interruptible(&qobj->thread_wq); @@ -635,7 +635,7 @@ transport_get_cmd_from_queue(struct se_queue_obj *qobj) } cmd = list_first_entry(&qobj->qobj_list, struct se_cmd, se_queue_node); - atomic_set(&cmd->t_transport_queue_active, 0); + cmd->t_transport_queue_active = 0; list_del_init(&cmd->se_queue_node); atomic_dec(&qobj->queue_cnt); @@ -650,19 +650,19 @@ static void transport_remove_cmd_from_queue(struct se_cmd *cmd) unsigned long flags; spin_lock_irqsave(&qobj->cmd_queue_lock, flags); - if (!atomic_read(&cmd->t_transport_queue_active)) { + if (!cmd->t_transport_queue_active) { spin_unlock_irqrestore(&qobj->cmd_queue_lock, flags); return; } - atomic_set(&cmd->t_transport_queue_active, 0); + cmd->t_transport_queue_active = 0; atomic_dec(&qobj->queue_cnt); list_del_init(&cmd->se_queue_node); spin_unlock_irqrestore(&qobj->cmd_queue_lock, flags); - if (atomic_read(&cmd->t_transport_queue_active)) { + if (cmd->t_transport_queue_active) { pr_err("ITT: 0x%08x t_transport_queue_active: %d\n", cmd->se_tfo->get_task_tag(cmd), - atomic_read(&cmd->t_transport_queue_active)); + cmd->t_transport_queue_active); } } @@ -761,12 +761,12 @@ void transport_complete_task(struct se_task *task, int success) } INIT_WORK(&cmd->work, target_complete_failure_work); } else { - atomic_set(&cmd->t_transport_complete, 1); + cmd->t_transport_complete = 1; INIT_WORK(&cmd->work, target_complete_ok_work); } cmd->t_state = TRANSPORT_COMPLETE; - atomic_set(&cmd->t_transport_active, 1); + cmd->t_transport_active = 1; spin_unlock_irqrestore(&cmd->t_state_lock, flags); queue_work(target_completion_wq, &cmd->work); @@ -833,7 +833,7 @@ static void __transport_add_task_to_execute_queue( head_of_queue = transport_add_task_check_sam_attr(task, task_prev, dev); atomic_inc(&dev->execute_tasks); - if (atomic_read(&task->task_state_active)) + if (task->task_state_active) return; /* * Determine if this task needs to go to HEAD_OF_QUEUE for the @@ -847,7 +847,7 @@ static void __transport_add_task_to_execute_queue( else list_add_tail(&task->t_state_list, &dev->state_task_list); - atomic_set(&task->task_state_active, 1); + task->task_state_active = 1; pr_debug("Added ITT: 0x%08x task[%p] to dev: %p\n", task->task_se_cmd->se_tfo->get_task_tag(task->task_se_cmd), @@ -862,12 +862,12 @@ static void transport_add_tasks_to_state_queue(struct se_cmd *cmd) spin_lock_irqsave(&cmd->t_state_lock, flags); list_for_each_entry(task, &cmd->t_task_list, t_list) { - if (atomic_read(&task->task_state_active)) + if (task->task_state_active) continue; spin_lock(&dev->execute_task_lock); list_add_tail(&task->t_state_list, &dev->state_task_list); - atomic_set(&task->task_state_active, 1); + task->task_state_active = 1; pr_debug("Added ITT: 0x%08x task[%p] to dev: %p\n", task->task_se_cmd->se_tfo->get_task_tag( @@ -1517,7 +1517,7 @@ void transport_init_se_cmd( init_completion(&cmd->t_transport_stop_comp); init_completion(&cmd->cmd_wait_comp); spin_lock_init(&cmd->t_state_lock); - atomic_set(&cmd->transport_dev_active, 1); + cmd->transport_dev_active = 1; cmd->se_tfo = tfo; cmd->se_sess = se_sess; @@ -1651,7 +1651,7 @@ int transport_handle_cdb_direct( * this to be called for initial descriptor submission. */ cmd->t_state = TRANSPORT_NEW_CMD; - atomic_set(&cmd->t_transport_active, 1); + cmd->t_transport_active = 1; /* * transport_generic_new_cmd() is already handling QUEUE_FULL, * so follow TRANSPORT_NEW_CMD processing thread context usage @@ -1819,9 +1819,9 @@ static void transport_generic_request_failure( atomic_read(&cmd->t_task_cdbs_left), atomic_read(&cmd->t_task_cdbs_sent), atomic_read(&cmd->t_task_cdbs_ex_left), - atomic_read(&cmd->t_transport_active), - atomic_read(&cmd->t_transport_stop), - atomic_read(&cmd->t_transport_sent)); + cmd->t_transport_active, + cmd->t_transport_stop, + cmd->t_transport_sent); /* * For SAM Task Attribute emulation for failed struct se_cmd @@ -2154,7 +2154,7 @@ check_depth: if (atomic_read(&cmd->t_task_cdbs_sent) == cmd->t_task_list_num) - atomic_set(&cmd->t_transport_sent, 1); + cmd->t_transport_sent = 1; spin_unlock_irqrestore(&cmd->t_state_lock, flags); @@ -2167,7 +2167,7 @@ check_depth: spin_lock_irqsave(&cmd->t_state_lock, flags); task->task_flags &= ~TF_ACTIVE; spin_unlock_irqrestore(&cmd->t_state_lock, flags); - atomic_set(&cmd->t_transport_sent, 0); + cmd->t_transport_sent = 0; transport_stop_tasks_for_cmd(cmd); atomic_inc(&dev->depth_left); transport_generic_request_failure(cmd, 0, 1); @@ -3454,8 +3454,8 @@ static void transport_put_cmd(struct se_cmd *cmd) goto out_busy; } - if (atomic_read(&cmd->transport_dev_active)) { - atomic_set(&cmd->transport_dev_active, 0); + if (cmd->transport_dev_active) { + cmd->transport_dev_active = 0; transport_all_task_dev_remove_state(cmd); free_tasks = 1; } @@ -4110,15 +4110,15 @@ static int transport_lun_wait_for_tasks(struct se_cmd *cmd, struct se_lun *lun) * be stopped, we can safely ignore this struct se_cmd. */ spin_lock_irqsave(&cmd->t_state_lock, flags); - if (atomic_read(&cmd->t_transport_stop)) { - atomic_set(&cmd->transport_lun_stop, 0); + if (cmd->t_transport_stop) { + cmd->transport_lun_stop = 0; pr_debug("ConfigFS ITT[0x%08x] - t_transport_stop ==" " TRUE, skipping\n", cmd->se_tfo->get_task_tag(cmd)); spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_cmd_check_stop(cmd, 1, 0); return -EPERM; } - atomic_set(&cmd->transport_lun_fe_stop, 1); + cmd->transport_lun_fe_stop = 1; spin_unlock_irqrestore(&cmd->t_state_lock, flags); wake_up_interruptible(&cmd->se_dev->dev_queue_obj.thread_wq); @@ -4153,7 +4153,7 @@ static void __transport_clear_lun_from_sessions(struct se_lun *lun) struct se_cmd, se_lun_node); list_del(&cmd->se_lun_node); - atomic_set(&cmd->transport_lun_active, 0); + cmd->transport_lun_active = 0; /* * This will notify iscsi_target_transport.c: * transport_cmd_check_stop() that a LUN shutdown is in @@ -4164,7 +4164,7 @@ static void __transport_clear_lun_from_sessions(struct se_lun *lun) "_lun_stop for ITT: 0x%08x\n", cmd->se_lun->unpacked_lun, cmd->se_tfo->get_task_tag(cmd)); - atomic_set(&cmd->transport_lun_stop, 1); + cmd->transport_lun_stop = 1; spin_unlock(&cmd->t_state_lock); spin_unlock_irqrestore(&lun->lun_cmd_lock, lun_flags); @@ -4194,11 +4194,11 @@ static void __transport_clear_lun_from_sessions(struct se_lun *lun) cmd->se_tfo->get_task_tag(cmd)); spin_lock_irqsave(&cmd->t_state_lock, cmd_flags); - if (!atomic_read(&cmd->transport_dev_active)) { + if (!cmd->transport_dev_active) { spin_unlock_irqrestore(&cmd->t_state_lock, cmd_flags); goto check_cond; } - atomic_set(&cmd->transport_dev_active, 0); + cmd->transport_dev_active = 0; transport_all_task_dev_remove_state(cmd); spin_unlock_irqrestore(&cmd->t_state_lock, cmd_flags); @@ -4218,7 +4218,7 @@ check_cond: * finished accessing it. */ spin_lock_irqsave(&cmd->t_state_lock, cmd_flags); - if (atomic_read(&cmd->transport_lun_fe_stop)) { + if (cmd->transport_lun_fe_stop) { pr_debug("SE_LUN[%d] - Detected FE stop for" " struct se_cmd: %p ITT: 0x%08x\n", lun->unpacked_lun, @@ -4296,7 +4296,7 @@ bool transport_wait_for_tasks(struct se_cmd *cmd) * transport_clear_lun_from_sessions() once the ConfigFS context caller * has completed its operation on the struct se_cmd. */ - if (atomic_read(&cmd->transport_lun_stop)) { + if (cmd->transport_lun_stop) { pr_debug("wait_for_tasks: Stopping" " wait_for_completion(&cmd->t_tasktransport_lun_fe" @@ -4325,15 +4325,15 @@ bool transport_wait_for_tasks(struct se_cmd *cmd) "stop_comp); for ITT: 0x%08x\n", cmd->se_tfo->get_task_tag(cmd)); - atomic_set(&cmd->transport_lun_stop, 0); + cmd->transport_lun_stop = 0; } - if (!atomic_read(&cmd->t_transport_active) || + if (!cmd->t_transport_active || atomic_read(&cmd->t_transport_aborted)) { spin_unlock_irqrestore(&cmd->t_state_lock, flags); return false; } - atomic_set(&cmd->t_transport_stop, 1); + cmd->t_transport_stop = 1; pr_debug("wait_for_tasks: Stopping %p ITT: 0x%08x" " i_state: %d, t_state: %d, t_transport_stop = TRUE\n", @@ -4347,8 +4347,8 @@ bool transport_wait_for_tasks(struct se_cmd *cmd) wait_for_completion(&cmd->t_transport_stop_comp); spin_lock_irqsave(&cmd->t_state_lock, flags); - atomic_set(&cmd->t_transport_active, 0); - atomic_set(&cmd->t_transport_stop, 0); + cmd->t_transport_active = 0; + cmd->t_transport_stop = 0; pr_debug("wait_for_tasks: Stopped wait_for_compltion(" "&cmd->t_transport_stop_comp) for ITT: 0x%08x\n", -- 1.7.7.1 -- 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