{
        struct se_device *dev = cmd->se_dev;
        struct se_session *sess = cmd->se_sess;
-       struct se_portal_group *tpg = sess->se_tpg;
+       struct se_portal_group *tpg;
        int ret = 0, rc;
 
-       if (!sess || !tpg)
+       if (!sess || !sess->se_tpg)
                goto out;
        rc = target_check_scsi2_reservation_conflict(cmd);
        if (rc == 1)
                dev->dev_res_bin_isid = 0;
                dev->dev_flags &= ~DF_SPC2_RESERVATIONS_WITH_ISID;
        }
+       tpg = sess->se_tpg;
        pr_debug("SCSI-2 Released reservation for %s LUN: %u ->"
                " MAPPED LUN: %u for %s\n", tpg->se_tpg_tfo->get_fabric_name(),
                cmd->se_lun->unpacked_lun, cmd->se_deve->mapped_lun,
 {
        struct se_device *dev = cmd->se_dev;
        struct se_session *sess = cmd->se_sess;
-       struct se_portal_group *tpg = sess->se_tpg;
+       struct se_portal_group *tpg;
        int ret = 0, rc;
 
        if ((cmd->t_task_cdb[1] & 0x01) &&
         * This is currently the case for target_core_mod passthrough struct se_cmd
         * ops
         */
-       if (!sess || !tpg)
+       if (!sess || !sess->se_tpg)
                goto out;
        rc = target_check_scsi2_reservation_conflict(cmd);
        if (rc == 1)
        }
 
        ret = 0;
+       tpg = sess->se_tpg;
        spin_lock(&dev->dev_reservation_lock);
        if (dev->dev_reserved_node_acl &&
           (dev->dev_reserved_node_acl != sess->se_node_acl)) {