target: Move dev_pr_cit to struct se_subsystem_api
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 27 Nov 2014 22:57:01 +0000 (14:57 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 2 Dec 2014 05:35:39 +0000 (21:35 -0800)
This patch adds support for dev_pr_cit as an external config_item_type
using TB_CIT_SETUP() helper macro, and sets both ct_item_ops + ct_attr
following existing code.

It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
struct target_backend_cits, and drops left-over target_core_dev_pr_cit
from target_core_configfs.c code and update comments.

This patch introduces no functional change from existing code.

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_configfs.c
include/target/target_core_backend.h

index 78ed857cc7b94d04023dd1da224c78f1df09d56a..49d51ba40fca145de3bd1caae59f46be8a74ad54 100644 (file)
@@ -1011,7 +1011,7 @@ static struct config_item_type target_core_dev_wwn_cit = {
 
 /*  End functions for struct config_item_type target_core_dev_wwn_cit */
 
-/*  Start functions for struct config_item_type target_core_dev_pr_cit */
+/*  Start functions for struct config_item_type tb_dev_pr_cit */
 
 CONFIGFS_EATTR_STRUCT(target_core_dev_pr, se_device);
 #define SE_DEV_PR_ATTR(_name, _mode)                                   \
@@ -1472,13 +1472,9 @@ static struct configfs_item_operations target_core_dev_pr_ops = {
        .store_attribute        = target_core_dev_pr_attr_store,
 };
 
-static struct config_item_type target_core_dev_pr_cit = {
-       .ct_item_ops            = &target_core_dev_pr_ops,
-       .ct_attrs               = target_core_dev_pr_attrs,
-       .ct_owner               = THIS_MODULE,
-};
+TB_CIT_SETUP(dev_pr, &target_core_dev_pr_ops, NULL, target_core_dev_pr_attrs);
 
-/*  End functions for struct config_item_type target_core_dev_pr_cit */
+/*  End functions for struct config_item_type tb_dev_pr_cit */
 
 /*  Start functions for struct config_item_type tb_dev_cit */
 
@@ -2825,7 +2821,7 @@ static struct config_group *target_core_make_subdev(
        config_group_init_type_name(&dev->dev_attrib.da_group, "attrib",
                        &t->tb_cits.tb_dev_attrib_cit);
        config_group_init_type_name(&dev->dev_pr_group, "pr",
-                       &target_core_dev_pr_cit);
+                       &t->tb_cits.tb_dev_pr_cit);
        config_group_init_type_name(&dev->t10_wwn.t10_wwn_group, "wwn",
                        &target_core_dev_wwn_cit);
        config_group_init_type_name(&dev->t10_alua.alua_tg_pt_gps_group,
@@ -3129,6 +3125,7 @@ void target_core_setup_sub_cits(struct se_subsystem_api *sa)
 {
        target_core_setup_dev_cit(sa);
        target_core_setup_dev_attrib_cit(sa);
+       target_core_setup_dev_pr_cit(sa);
 }
 EXPORT_SYMBOL(target_core_setup_sub_cits);
 
index 735f85672ec6ca4b8d5b9ea1d66bfb10384ff1b4..a47e78989b6fb2d910e9428b367af5f0660c1f20 100644 (file)
@@ -8,6 +8,7 @@
 struct target_backend_cits {
        struct config_item_type tb_dev_cit;
        struct config_item_type tb_dev_attrib_cit;
+       struct config_item_type tb_dev_pr_cit;
 };
 
 struct se_subsystem_api {