diff --git a/fcst/ft_sess.c b/fcst/ft_sess.c index 02f9dd9e8..c0e62f1ed 100644 --- a/fcst/ft_sess.c +++ b/fcst/ft_sess.c @@ -48,7 +48,12 @@ static struct ft_tport *ft_tport_create(struct fc_lport *lport) ft_format_wwn(name, sizeof(name), lport->wwpn); FT_SESS_DBG("create %s\n", name); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34) + tport = rcu_dereference_protected(lport->prov[FC_TYPE_FCP], + lockdep_is_held(&ft_lport_lock)); +#else tport = rcu_dereference(lport->prov[FC_TYPE_FCP]); +#endif if (tport) { FT_SESS_DBG("tport alloc %s - already setup\n", name); return tport;