diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index df3b9558a..45c9d48ef 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -2486,7 +2486,7 @@ static void scst_check_reassign_sess(struct scst_session *sess) acg->acg_name); old_acg = sess->acg; - sess->acg = acg; + sess->acg = NULL; /* to catch implicit dependencies earlier */ retry_add: add_failed = false; @@ -2559,6 +2559,8 @@ next: goto retry_add; } + sess->acg = acg; + TRACE_DBG("Moving sess %p from acg %s to acg %s", sess, old_acg->acg_name, acg->acg_name); list_move_tail(&sess->acg_sess_list_entry, &acg->acg_sess_list); diff --git a/scst/src/scst_tg.c b/scst/src/scst_tg.c index 6fc7a8f7d..34bfaf960 100644 --- a/scst/src/scst_tg.c +++ b/scst/src/scst_tg.c @@ -426,7 +426,7 @@ void scst_tg_init_tgt_dev(struct scst_tgt_dev *tgt_dev) if (dg) { tg = __lookup_tg_by_tgt(dg, tgt_dev->acg_dev->acg->tgt); if (tg) { - scst_tg_change_tgt_dev_state(tgt_dev, tg->state, true); + scst_update_tgt_dev_alua_filter(tgt_dev, tg->state); scst_check_alua_invariant(); } }