forked from luck/tmp_suning_uos_patched
target: Add EXPORT_SYMBOL for existing se_dev_set_*
Now that target_core_backend_configfs.h macros will be using these se_dev_set attribute functions externally to allow backend drivers to populate different attributes, go ahead and add EXPORT_SYMBOL() for the existing default set of 30 device attributes. Also update target_core_backend.h with proper function prototypes. Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
7a23f890b7
commit
d30cd1238c
@ -659,6 +659,7 @@ int se_dev_set_max_unmap_lba_count(
|
||||
dev, dev->dev_attrib.max_unmap_lba_count);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_max_unmap_lba_count);
|
||||
|
||||
int se_dev_set_max_unmap_block_desc_count(
|
||||
struct se_device *dev,
|
||||
@ -670,6 +671,7 @@ int se_dev_set_max_unmap_block_desc_count(
|
||||
dev, dev->dev_attrib.max_unmap_block_desc_count);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_max_unmap_block_desc_count);
|
||||
|
||||
int se_dev_set_unmap_granularity(
|
||||
struct se_device *dev,
|
||||
@ -680,6 +682,7 @@ int se_dev_set_unmap_granularity(
|
||||
dev, dev->dev_attrib.unmap_granularity);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_unmap_granularity);
|
||||
|
||||
int se_dev_set_unmap_granularity_alignment(
|
||||
struct se_device *dev,
|
||||
@ -690,6 +693,7 @@ int se_dev_set_unmap_granularity_alignment(
|
||||
dev, dev->dev_attrib.unmap_granularity_alignment);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_unmap_granularity_alignment);
|
||||
|
||||
int se_dev_set_max_write_same_len(
|
||||
struct se_device *dev,
|
||||
@ -700,6 +704,7 @@ int se_dev_set_max_write_same_len(
|
||||
dev, dev->dev_attrib.max_write_same_len);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_max_write_same_len);
|
||||
|
||||
static void dev_set_t10_wwn_model_alias(struct se_device *dev)
|
||||
{
|
||||
@ -738,6 +743,7 @@ int se_dev_set_emulate_model_alias(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_model_alias);
|
||||
|
||||
int se_dev_set_emulate_dpo(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -753,6 +759,7 @@ int se_dev_set_emulate_dpo(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_dpo);
|
||||
|
||||
int se_dev_set_emulate_fua_write(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -771,6 +778,7 @@ int se_dev_set_emulate_fua_write(struct se_device *dev, int flag)
|
||||
dev, dev->dev_attrib.emulate_fua_write);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_fua_write);
|
||||
|
||||
int se_dev_set_emulate_fua_read(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -786,6 +794,7 @@ int se_dev_set_emulate_fua_read(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_fua_read);
|
||||
|
||||
int se_dev_set_emulate_write_cache(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -809,6 +818,7 @@ int se_dev_set_emulate_write_cache(struct se_device *dev, int flag)
|
||||
dev, dev->dev_attrib.emulate_write_cache);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_write_cache);
|
||||
|
||||
int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -829,6 +839,7 @@ int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_ua_intlck_ctrl);
|
||||
|
||||
int se_dev_set_emulate_tas(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -849,6 +860,7 @@ int se_dev_set_emulate_tas(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_tas);
|
||||
|
||||
int se_dev_set_emulate_tpu(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -870,6 +882,7 @@ int se_dev_set_emulate_tpu(struct se_device *dev, int flag)
|
||||
dev, flag);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_tpu);
|
||||
|
||||
int se_dev_set_emulate_tpws(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -891,6 +904,7 @@ int se_dev_set_emulate_tpws(struct se_device *dev, int flag)
|
||||
dev, flag);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_tpws);
|
||||
|
||||
int se_dev_set_emulate_caw(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -904,6 +918,7 @@ int se_dev_set_emulate_caw(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_caw);
|
||||
|
||||
int se_dev_set_emulate_3pc(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -917,6 +932,7 @@ int se_dev_set_emulate_3pc(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_3pc);
|
||||
|
||||
int se_dev_set_pi_prot_type(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -970,6 +986,7 @@ int se_dev_set_pi_prot_type(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_pi_prot_type);
|
||||
|
||||
int se_dev_set_pi_prot_format(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -1005,6 +1022,7 @@ int se_dev_set_pi_prot_format(struct se_device *dev, int flag)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_pi_prot_format);
|
||||
|
||||
int se_dev_set_enforce_pr_isids(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -1017,6 +1035,7 @@ int se_dev_set_enforce_pr_isids(struct se_device *dev, int flag)
|
||||
(dev->dev_attrib.enforce_pr_isids) ? "Enabled" : "Disabled");
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_enforce_pr_isids);
|
||||
|
||||
int se_dev_set_force_pr_aptpl(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -1034,6 +1053,7 @@ int se_dev_set_force_pr_aptpl(struct se_device *dev, int flag)
|
||||
pr_debug("dev[%p]: SE Device force_pr_aptpl: %d\n", dev, flag);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_force_pr_aptpl);
|
||||
|
||||
int se_dev_set_is_nonrot(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -1046,6 +1066,7 @@ int se_dev_set_is_nonrot(struct se_device *dev, int flag)
|
||||
dev, flag);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_is_nonrot);
|
||||
|
||||
int se_dev_set_emulate_rest_reord(struct se_device *dev, int flag)
|
||||
{
|
||||
@ -1058,6 +1079,7 @@ int se_dev_set_emulate_rest_reord(struct se_device *dev, int flag)
|
||||
pr_debug("dev[%p]: SE Device emulate_rest_reord: %d\n", dev, flag);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_emulate_rest_reord);
|
||||
|
||||
/*
|
||||
* Note, this can only be called on unexported SE Device Object.
|
||||
@ -1101,6 +1123,7 @@ int se_dev_set_queue_depth(struct se_device *dev, u32 queue_depth)
|
||||
dev, queue_depth);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_queue_depth);
|
||||
|
||||
int se_dev_set_fabric_max_sectors(struct se_device *dev, u32 fabric_max_sectors)
|
||||
{
|
||||
@ -1155,6 +1178,7 @@ int se_dev_set_fabric_max_sectors(struct se_device *dev, u32 fabric_max_sectors)
|
||||
dev, fabric_max_sectors);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_fabric_max_sectors);
|
||||
|
||||
int se_dev_set_optimal_sectors(struct se_device *dev, u32 optimal_sectors)
|
||||
{
|
||||
@ -1181,6 +1205,7 @@ int se_dev_set_optimal_sectors(struct se_device *dev, u32 optimal_sectors)
|
||||
dev, optimal_sectors);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_optimal_sectors);
|
||||
|
||||
int se_dev_set_block_size(struct se_device *dev, u32 block_size)
|
||||
{
|
||||
@ -1218,6 +1243,7 @@ int se_dev_set_block_size(struct se_device *dev, u32 block_size)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(se_dev_set_block_size);
|
||||
|
||||
struct se_lun *core_dev_add_lun(
|
||||
struct se_portal_group *tpg,
|
||||
|
@ -858,6 +858,7 @@ static bool iblock_get_write_cache(struct se_device *dev)
|
||||
return q->flush_flags & REQ_FLUSH;
|
||||
}
|
||||
|
||||
|
||||
static struct se_subsystem_api iblock_template = {
|
||||
.name = "iblock",
|
||||
.inquiry_prod = "IBLOCK",
|
||||
|
@ -18,34 +18,6 @@ int core_dev_export(struct se_device *, struct se_portal_group *,
|
||||
struct se_lun *);
|
||||
void core_dev_unexport(struct se_device *, struct se_portal_group *,
|
||||
struct se_lun *);
|
||||
int se_dev_set_task_timeout(struct se_device *, u32);
|
||||
int se_dev_set_max_unmap_lba_count(struct se_device *, u32);
|
||||
int se_dev_set_max_unmap_block_desc_count(struct se_device *, u32);
|
||||
int se_dev_set_unmap_granularity(struct se_device *, u32);
|
||||
int se_dev_set_unmap_granularity_alignment(struct se_device *, u32);
|
||||
int se_dev_set_max_write_same_len(struct se_device *, u32);
|
||||
int se_dev_set_emulate_model_alias(struct se_device *, int);
|
||||
int se_dev_set_emulate_dpo(struct se_device *, int);
|
||||
int se_dev_set_emulate_fua_write(struct se_device *, int);
|
||||
int se_dev_set_emulate_fua_read(struct se_device *, int);
|
||||
int se_dev_set_emulate_write_cache(struct se_device *, int);
|
||||
int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *, int);
|
||||
int se_dev_set_emulate_tas(struct se_device *, int);
|
||||
int se_dev_set_emulate_tpu(struct se_device *, int);
|
||||
int se_dev_set_emulate_tpws(struct se_device *, int);
|
||||
int se_dev_set_emulate_caw(struct se_device *, int);
|
||||
int se_dev_set_emulate_3pc(struct se_device *, int);
|
||||
int se_dev_set_pi_prot_type(struct se_device *, int);
|
||||
int se_dev_set_pi_prot_format(struct se_device *, int);
|
||||
int se_dev_set_enforce_pr_isids(struct se_device *, int);
|
||||
int se_dev_set_force_pr_aptpl(struct se_device *, int);
|
||||
int se_dev_set_is_nonrot(struct se_device *, int);
|
||||
int se_dev_set_emulate_rest_reord(struct se_device *dev, int);
|
||||
int se_dev_set_queue_depth(struct se_device *, u32);
|
||||
int se_dev_set_max_sectors(struct se_device *, u32);
|
||||
int se_dev_set_fabric_max_sectors(struct se_device *, u32);
|
||||
int se_dev_set_optimal_sectors(struct se_device *, u32);
|
||||
int se_dev_set_block_size(struct se_device *, u32);
|
||||
struct se_lun *core_dev_add_lun(struct se_portal_group *, struct se_device *, u32);
|
||||
void core_dev_del_lun(struct se_portal_group *, struct se_lun *);
|
||||
struct se_lun *core_get_lun_from_tpg(struct se_portal_group *, u32);
|
||||
|
@ -110,4 +110,33 @@ void array_free(void *array, int n);
|
||||
/* From target_core_configfs.c to setup default backend config_item_types */
|
||||
void target_core_setup_sub_cits(struct se_subsystem_api *);
|
||||
|
||||
/* attribute helpers from target_core_device.c for backend drivers */
|
||||
int se_dev_set_max_unmap_lba_count(struct se_device *, u32);
|
||||
int se_dev_set_max_unmap_block_desc_count(struct se_device *, u32);
|
||||
int se_dev_set_unmap_granularity(struct se_device *, u32);
|
||||
int se_dev_set_unmap_granularity_alignment(struct se_device *, u32);
|
||||
int se_dev_set_max_write_same_len(struct se_device *, u32);
|
||||
int se_dev_set_emulate_model_alias(struct se_device *, int);
|
||||
int se_dev_set_emulate_dpo(struct se_device *, int);
|
||||
int se_dev_set_emulate_fua_write(struct se_device *, int);
|
||||
int se_dev_set_emulate_fua_read(struct se_device *, int);
|
||||
int se_dev_set_emulate_write_cache(struct se_device *, int);
|
||||
int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *, int);
|
||||
int se_dev_set_emulate_tas(struct se_device *, int);
|
||||
int se_dev_set_emulate_tpu(struct se_device *, int);
|
||||
int se_dev_set_emulate_tpws(struct se_device *, int);
|
||||
int se_dev_set_emulate_caw(struct se_device *, int);
|
||||
int se_dev_set_emulate_3pc(struct se_device *, int);
|
||||
int se_dev_set_pi_prot_type(struct se_device *, int);
|
||||
int se_dev_set_pi_prot_format(struct se_device *, int);
|
||||
int se_dev_set_enforce_pr_isids(struct se_device *, int);
|
||||
int se_dev_set_force_pr_aptpl(struct se_device *, int);
|
||||
int se_dev_set_is_nonrot(struct se_device *, int);
|
||||
int se_dev_set_emulate_rest_reord(struct se_device *dev, int);
|
||||
int se_dev_set_queue_depth(struct se_device *, u32);
|
||||
int se_dev_set_max_sectors(struct se_device *, u32);
|
||||
int se_dev_set_fabric_max_sectors(struct se_device *, u32);
|
||||
int se_dev_set_optimal_sectors(struct se_device *, u32);
|
||||
int se_dev_set_block_size(struct se_device *, u32);
|
||||
|
||||
#endif /* TARGET_CORE_BACKEND_H */
|
||||
|
Loading…
Reference in New Issue
Block a user