return ERR_PTR(ret);
        }
 
-       tpg = container_of(se_tpg, struct iscsi_portal_group, tpg_se_tpg);
+       tpg = to_iscsi_tpg(se_tpg);
        ret = iscsit_get_tpg(tpg);
        if (ret < 0)
                return ERR_PTR(-EINVAL);
                char *page)                                             \
 {                                                                      \
        struct se_node_acl *se_nacl = attrib_to_nacl(item);             \
-       struct iscsi_node_acl *nacl = container_of(se_nacl, struct iscsi_node_acl, \
-                                       se_node_acl);                   \
-                                                                       \
+       struct iscsi_node_acl *nacl = to_iscsi_nacl(se_nacl);           \
        return sprintf(page, "%u\n", nacl->node_attrib.name);           \
 }                                                                      \
                                                                        \
                const char *page, size_t count)                         \
 {                                                                      \
        struct se_node_acl *se_nacl = attrib_to_nacl(item);             \
-       struct iscsi_node_acl *nacl = container_of(se_nacl, struct iscsi_node_acl, \
-                                       se_node_acl);                   \
+       struct iscsi_node_acl *nacl = to_iscsi_nacl(se_nacl);           \
        u32 val;                                                        \
        int ret;                                                        \
                                                                        \
                char *page)                                             \
 {                                                                      \
        struct se_node_acl *nacl = auth_to_nacl(item);                  \
-       return __iscsi_nacl_auth_##name##_show(container_of(nacl,       \
-                       struct iscsi_node_acl, se_node_acl), page);     \
+       return __iscsi_nacl_auth_##name##_show(to_iscsi_nacl(nacl), page);      \
 }                                                                      \
 static ssize_t iscsi_nacl_auth_##name##_store(struct config_item *item,        \
                const char *page, size_t count)                         \
 {                                                                      \
        struct se_node_acl *nacl = auth_to_nacl(item);                  \
-       return __iscsi_nacl_auth_##name##_store(container_of(nacl,      \
-                       struct iscsi_node_acl, se_node_acl), page, count); \
+       return __iscsi_nacl_auth_##name##_store(to_iscsi_nacl(nacl),    \
+                                               page, count); \
 }                                                                      \
                                                                        \
 CONFIGFS_ATTR(iscsi_nacl_auth_, name)
                char *page)                                             \
 {                                                                      \
        struct se_node_acl *nacl = auth_to_nacl(item);                  \
-       return __iscsi_nacl_auth_##name##_show(container_of(nacl,       \
-                       struct iscsi_node_acl, se_node_acl), page);     \
+       return __iscsi_nacl_auth_##name##_show(to_iscsi_nacl(nacl), page);      \
 }                                                                      \
                                                                        \
 CONFIGFS_ATTR_RO(iscsi_nacl_auth_, name)
 {
        struct se_node_acl *se_nacl = acl_to_nacl(item);
        struct se_portal_group *se_tpg = se_nacl->se_tpg;
-       struct iscsi_portal_group *tpg = container_of(se_tpg,
-                       struct iscsi_portal_group, tpg_se_tpg);
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);
        struct config_item *acl_ci, *tpg_ci, *wwn_ci;
        u32 cmdsn_depth = 0;
        int ret;
 static int lio_target_init_nodeacl(struct se_node_acl *se_nacl,
                const char *name)
 {
-       struct iscsi_node_acl *acl =
-               container_of(se_nacl, struct iscsi_node_acl, se_node_acl);
+       struct iscsi_node_acl *acl = to_iscsi_nacl(se_nacl);
 
        config_group_init_type_name(&acl->node_stat_grps.iscsi_sess_stats_group,
                        "iscsi_sess_stats", &iscsi_stat_sess_cit);
                char *page)                                             \
 {                                                                      \
        struct se_portal_group *se_tpg = attrib_to_tpg(item);           \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,           \
-                       struct iscsi_portal_group, tpg_se_tpg); \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);          \
        ssize_t rb;                                                     \
                                                                        \
        if (iscsit_get_tpg(tpg) < 0)                                    \
                const char *page, size_t count)                         \
 {                                                                      \
        struct se_portal_group *se_tpg = attrib_to_tpg(item);           \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,           \
-                       struct iscsi_portal_group, tpg_se_tpg); \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);          \
        u32 val;                                                        \
        int ret;                                                        \
                                                                        \
 static ssize_t __iscsi_##prefix##_##name##_show(struct se_portal_group *se_tpg,        \
                char *page)                                                     \
 {                                                                              \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,                   \
-                               struct iscsi_portal_group, tpg_se_tpg);         \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);                  \
        struct iscsi_node_auth *auth = &tpg->tpg_demo_auth;                     \
                                                                                \
        if (!capable(CAP_SYS_ADMIN))                                            \
 static ssize_t __iscsi_##prefix##_##name##_store(struct se_portal_group *se_tpg,\
                const char *page, size_t count)                                 \
 {                                                                              \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,                   \
-                               struct iscsi_portal_group, tpg_se_tpg);         \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);                  \
        struct iscsi_node_auth *auth = &tpg->tpg_demo_auth;                     \
                                                                                \
        if (!capable(CAP_SYS_ADMIN))                                            \
 static ssize_t __iscsi_##prefix##_##name##_show(struct se_portal_group *se_tpg,        \
                char *page)                                                             \
 {                                                                              \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,                   \
-                               struct iscsi_portal_group, tpg_se_tpg);         \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);                  \
        struct iscsi_node_auth *auth = &tpg->tpg_demo_auth;                     \
                                                                                \
        if (!capable(CAP_SYS_ADMIN))                                            \
                char *page)                                             \
 {                                                                      \
        struct se_portal_group *se_tpg = param_to_tpg(item);            \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,           \
-                       struct iscsi_portal_group, tpg_se_tpg);         \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);          \
        struct iscsi_param *param;                                      \
        ssize_t rb;                                                     \
                                                                        \
                const char *page, size_t count)                         \
 {                                                                      \
        struct se_portal_group *se_tpg = param_to_tpg(item);            \
-       struct iscsi_portal_group *tpg = container_of(se_tpg,           \
-                       struct iscsi_portal_group, tpg_se_tpg);         \
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);          \
        char *buf;                                                      \
        int ret, len;                                                   \
                                                                        \
 static int lio_target_tiqn_enabletpg(struct se_portal_group *se_tpg,
                                     bool enable)
 {
-       struct iscsi_portal_group *tpg = container_of(se_tpg,
-                       struct iscsi_portal_group, tpg_se_tpg);
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);
        int ret;
 
        ret = iscsit_get_tpg(tpg);
        struct iscsi_portal_group *tpg;
        struct iscsi_tiqn *tiqn;
 
-       tpg = container_of(se_tpg, struct iscsi_portal_group, tpg_se_tpg);
+       tpg = to_iscsi_tpg(se_tpg);
        tiqn = tpg->tpg_tiqn;
        /*
         * iscsit_tpg_del_portal_group() assumes force=1
        cmd->conn->conn_transport->iscsit_aborted_task(cmd->conn, cmd);
 }
 
-static inline struct iscsi_portal_group *iscsi_tpg(struct se_portal_group *se_tpg)
-{
-       return container_of(se_tpg, struct iscsi_portal_group, tpg_se_tpg);
-}
-
 static char *lio_tpg_get_endpoint_wwn(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_tiqn->tiqn;
+       return to_iscsi_tpg(se_tpg)->tpg_tiqn->tiqn;
 }
 
 static u16 lio_tpg_get_tag(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpgt;
+       return to_iscsi_tpg(se_tpg)->tpgt;
 }
 
 static u32 lio_tpg_get_default_depth(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_attrib.default_cmdsn_depth;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.default_cmdsn_depth;
 }
 
 static int lio_tpg_check_demo_mode(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_attrib.generate_node_acls;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.generate_node_acls;
 }
 
 static int lio_tpg_check_demo_mode_cache(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_attrib.cache_dynamic_acls;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.cache_dynamic_acls;
 }
 
 static int lio_tpg_check_demo_mode_write_protect(
        struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_attrib.demo_mode_write_protect;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.demo_mode_write_protect;
 }
 
 static int lio_tpg_check_prod_mode_write_protect(
        struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_attrib.prod_mode_write_protect;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.prod_mode_write_protect;
 }
 
 static int lio_tpg_check_prot_fabric_only(
         * Only report fabric_prot_type if t10_pi has also been enabled
         * for incoming ib_isert sessions.
         */
-       if (!iscsi_tpg(se_tpg)->tpg_attrib.t10_pi)
+       if (!to_iscsi_tpg(se_tpg)->tpg_attrib.t10_pi)
                return 0;
-       return iscsi_tpg(se_tpg)->tpg_attrib.fabric_prot_type;
+       return to_iscsi_tpg(se_tpg)->tpg_attrib.fabric_prot_type;
 }
 
 /*
 
 static u32 lio_tpg_get_inst_index(struct se_portal_group *se_tpg)
 {
-       return iscsi_tpg(se_tpg)->tpg_tiqn->tiqn_index;
+       return to_iscsi_tpg(se_tpg)->tpg_tiqn->tiqn_index;
 }
 
 static void lio_set_default_node_attributes(struct se_node_acl *se_acl)
 {
-       struct iscsi_node_acl *acl = container_of(se_acl, struct iscsi_node_acl,
-                               se_node_acl);
+       struct iscsi_node_acl *acl = to_iscsi_nacl(se_acl);
        struct se_portal_group *se_tpg = se_acl->se_tpg;
-       struct iscsi_portal_group *tpg = container_of(se_tpg,
-                               struct iscsi_portal_group, tpg_se_tpg);
+       struct iscsi_portal_group *tpg = to_iscsi_tpg(se_tpg);
 
        acl->node_attrib.nacl = acl;
        iscsit_set_default_node_attribues(acl, tpg);