Commit d30cd123 authored by Nicholas Bellinger's avatar Nicholas Bellinger
Browse files

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: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 7a23f890
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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",
+0 −28
Original line number Diff line number Diff line
@@ -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);
+29 −0
Original line number Diff line number Diff line
@@ -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 */