target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage
[GitHub/exynos8895/android_kernel_samsung_universal8895.git] / drivers / target / sbp / sbp_target.c
index 47fb12fbaf47c02e23d3f303dd5d5aa00ce36521..28e3adf1eb853b121617aeb9d276a4adeb0b7071 100644 (file)
@@ -1905,8 +1905,11 @@ static int sbp_update_unit_directory(struct sbp_tport *tport)
        hlist_for_each_entry_rcu(lun, &tport->tpg->se_tpg.tpg_lun_hlist, link) {
                struct se_device *dev;
                int type;
-
-               dev = lun->lun_se_dev;
+               /*
+                * rcu_dereference_raw protected by se_lun->lun_group symlink
+                * reference to se_device->dev_group.
+                */
+               dev = rcu_dereference_raw(lun->lun_se_dev);
                type = dev->transport->get_device_type(dev);
 
                /* logical_unit_number */