Although the port also has a tpg pointer, if there's no port to link
(lun->lun_sep is NULL) then we can't get to it. So we need one in se_lun.

Signed-off-by: Andy Grover <agro...@redhat.com>
---
 drivers/target/target_core_tpg.c  |    2 ++
 include/target/target_core_base.h |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
index 6b4b0e6..c63f6cd 100644
--- a/drivers/target/target_core_tpg.c
+++ b/drivers/target/target_core_tpg.c
@@ -614,6 +614,7 @@ static int core_tpg_setup_virtual_lun0(struct 
se_portal_group *se_tpg)
        INIT_LIST_HEAD(&lun->lun_acl_list);
        spin_lock_init(&lun->lun_acl_lock);
        spin_lock_init(&lun->lun_sep_lock);
+       lun->lun_tpg = se_tpg;
 
        return core_tpg_add_lun(se_tpg, lun, lun_access, dev);
 }
@@ -739,6 +740,7 @@ struct se_lun *core_tpg_alloc_lun(
        spin_lock_init(&lun->lun_acl_lock);
        spin_lock_init(&lun->lun_sep_lock);
        kref_init(&lun->refcount);
+       lun->lun_tpg = tpg;
 
        spin_lock(&tpg->tpg_lun_lock);
        if (!core_insert_lun(tpg, lun)) {
diff --git a/include/target/target_core_base.h 
b/include/target/target_core_base.h
index 6d67c31..e4d5119 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -639,6 +639,7 @@ struct se_lun {
        struct list_head        lun_acl_list;
        struct se_device        *lun_se_dev;
        struct se_port          *lun_sep;
+       struct se_portal_group  *lun_tpg;
        struct config_group     lun_group;
        struct se_port_stat_grps port_stat_grps;
        struct kref             refcount;
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to