target: fail ALUA transitions for pscsi
authorMike Christie <mchristi@redhat.com>
Thu, 2 Mar 2017 05:13:25 +0000 (23:13 -0600)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 18 Mar 2017 21:47:26 +0000 (14:47 -0700)
We do not setup the LU group for pscsi devices, so if you write
a state to alua_access_state that will cause a transition you will
get a NULL pointer dereference.

This patch will fail attempts to try and transition the path
for backend devices that set the TRANSPORT_FLAG_PASSTHROUGH_ALUA
flag.

Signed-off-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_alua.c

index a41bbb8087cf249ff8af032fdffa3183efe0e010..5b5a1e250a659429f99d2d647bb84164683f2617 100644 (file)
@@ -1149,6 +1149,9 @@ int core_alua_do_port_transition(
        struct t10_alua_tg_pt_gp *tg_pt_gp;
        int primary, valid_states, rc = 0;
 
+       if (l_dev->transport->transport_flags & TRANSPORT_FLAG_PASSTHROUGH_ALUA)
+               return -ENODEV;
+
        valid_states = l_tg_pt_gp->tg_pt_gp_alua_supported_states;
        if (core_alua_check_transition(new_state, valid_states, &primary) != 0)
                return -EINVAL;