mirror of https://gitee.com/openkylin/linux.git
iscsi-target: Add new TPG attribute
Add a new TPG attribute demo_mode_discovery which is enabled by default. Signed-off-by: Thomas Glanzmann <thomas@glanzmann.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
8f4a1fb0d0
commit
4c54b6cf28
|
@ -1041,6 +1041,11 @@ TPG_ATTR(demo_mode_write_protect, S_IRUGO | S_IWUSR);
|
||||||
*/
|
*/
|
||||||
DEF_TPG_ATTRIB(prod_mode_write_protect);
|
DEF_TPG_ATTRIB(prod_mode_write_protect);
|
||||||
TPG_ATTR(prod_mode_write_protect, S_IRUGO | S_IWUSR);
|
TPG_ATTR(prod_mode_write_protect, S_IRUGO | S_IWUSR);
|
||||||
|
/*
|
||||||
|
* Define iscsi_tpg_attrib_s_demo_mode_discovery,
|
||||||
|
*/
|
||||||
|
DEF_TPG_ATTRIB(demo_mode_discovery);
|
||||||
|
TPG_ATTR(demo_mode_discovery, S_IRUGO | S_IWUSR);
|
||||||
|
|
||||||
static struct configfs_attribute *lio_target_tpg_attrib_attrs[] = {
|
static struct configfs_attribute *lio_target_tpg_attrib_attrs[] = {
|
||||||
&iscsi_tpg_attrib_authentication.attr,
|
&iscsi_tpg_attrib_authentication.attr,
|
||||||
|
@ -1051,6 +1056,7 @@ static struct configfs_attribute *lio_target_tpg_attrib_attrs[] = {
|
||||||
&iscsi_tpg_attrib_cache_dynamic_acls.attr,
|
&iscsi_tpg_attrib_cache_dynamic_acls.attr,
|
||||||
&iscsi_tpg_attrib_demo_mode_write_protect.attr,
|
&iscsi_tpg_attrib_demo_mode_write_protect.attr,
|
||||||
&iscsi_tpg_attrib_prod_mode_write_protect.attr,
|
&iscsi_tpg_attrib_prod_mode_write_protect.attr,
|
||||||
|
&iscsi_tpg_attrib_demo_mode_discovery.attr,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
#define TA_DEMO_MODE_WRITE_PROTECT 1
|
#define TA_DEMO_MODE_WRITE_PROTECT 1
|
||||||
/* Disabled by default in production mode w/ explict ACLs */
|
/* Disabled by default in production mode w/ explict ACLs */
|
||||||
#define TA_PROD_MODE_WRITE_PROTECT 0
|
#define TA_PROD_MODE_WRITE_PROTECT 0
|
||||||
|
#define TA_DEMO_MODE_DISCOVERY 1
|
||||||
#define TA_CACHE_CORE_NPS 0
|
#define TA_CACHE_CORE_NPS 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -764,6 +765,7 @@ struct iscsi_tpg_attrib {
|
||||||
u32 default_cmdsn_depth;
|
u32 default_cmdsn_depth;
|
||||||
u32 demo_mode_write_protect;
|
u32 demo_mode_write_protect;
|
||||||
u32 prod_mode_write_protect;
|
u32 prod_mode_write_protect;
|
||||||
|
u32 demo_mode_discovery;
|
||||||
struct iscsi_portal_group *tpg;
|
struct iscsi_portal_group *tpg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -223,6 +223,7 @@ static void iscsit_set_default_tpg_attribs(struct iscsi_portal_group *tpg)
|
||||||
a->cache_dynamic_acls = TA_CACHE_DYNAMIC_ACLS;
|
a->cache_dynamic_acls = TA_CACHE_DYNAMIC_ACLS;
|
||||||
a->demo_mode_write_protect = TA_DEMO_MODE_WRITE_PROTECT;
|
a->demo_mode_write_protect = TA_DEMO_MODE_WRITE_PROTECT;
|
||||||
a->prod_mode_write_protect = TA_PROD_MODE_WRITE_PROTECT;
|
a->prod_mode_write_protect = TA_PROD_MODE_WRITE_PROTECT;
|
||||||
|
a->demo_mode_discovery = TA_DEMO_MODE_DISCOVERY;
|
||||||
}
|
}
|
||||||
|
|
||||||
int iscsit_tpg_add_portal_group(struct iscsi_tiqn *tiqn, struct iscsi_portal_group *tpg)
|
int iscsit_tpg_add_portal_group(struct iscsi_tiqn *tiqn, struct iscsi_portal_group *tpg)
|
||||||
|
@ -820,3 +821,22 @@ int iscsit_ta_prod_mode_write_protect(
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int iscsit_ta_demo_mode_discovery(
|
||||||
|
struct iscsi_portal_group *tpg,
|
||||||
|
u32 flag)
|
||||||
|
{
|
||||||
|
struct iscsi_tpg_attrib *a = &tpg->tpg_attrib;
|
||||||
|
|
||||||
|
if ((flag != 0) && (flag != 1)) {
|
||||||
|
pr_err("Illegal value %d\n", flag);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
a->demo_mode_discovery = flag;
|
||||||
|
pr_debug("iSCSI_TPG[%hu] - Demo Mode Discovery bit:"
|
||||||
|
" %s\n", tpg->tpgt, (a->demo_mode_discovery) ?
|
||||||
|
"ON" : "OFF");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -37,5 +37,6 @@ extern int iscsit_ta_default_cmdsn_depth(struct iscsi_portal_group *, u32);
|
||||||
extern int iscsit_ta_cache_dynamic_acls(struct iscsi_portal_group *, u32);
|
extern int iscsit_ta_cache_dynamic_acls(struct iscsi_portal_group *, u32);
|
||||||
extern int iscsit_ta_demo_mode_write_protect(struct iscsi_portal_group *, u32);
|
extern int iscsit_ta_demo_mode_write_protect(struct iscsi_portal_group *, u32);
|
||||||
extern int iscsit_ta_prod_mode_write_protect(struct iscsi_portal_group *, u32);
|
extern int iscsit_ta_prod_mode_write_protect(struct iscsi_portal_group *, u32);
|
||||||
|
extern int iscsit_ta_demo_mode_discovery(struct iscsi_portal_group *, u32);
|
||||||
|
|
||||||
#endif /* ISCSI_TARGET_TPG_H */
|
#endif /* ISCSI_TARGET_TPG_H */
|
||||||
|
|
Loading…
Reference in New Issue