Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85441e6b authored by Mike Christie's avatar Mike Christie Committed by Nicholas Bellinger
Browse files

target: add helper to find se_device by dev_index



This adds a helper to find a se_device by dev_index. It will
be used in the next patches so tcmu's netlink interface can
execute commands on specific devices.

Signed-off-by: default avatarMike Christie <mchristi@redhat.com>
Reviewed-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 0a5eee64
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -880,6 +880,30 @@ sector_t target_to_linux_sector(struct se_device *dev, sector_t lb)
}
EXPORT_SYMBOL(target_to_linux_sector);

/**
 * target_find_device - find a se_device by its dev_index
 * @id: dev_index
 * @do_depend: true if caller needs target_depend_item to be done
 *
 * If do_depend is true, the caller must do a target_undepend_item
 * when finished using the device.
 *
 * If do_depend is false, the caller must be called in a configfs
 * callback or during removal.
 */
struct se_device *target_find_device(int id, bool do_depend)
{
	struct se_device *dev;

	mutex_lock(&g_device_mutex);
	dev = idr_find(&devices_idr, id);
	if (dev && do_depend && target_depend_item(&dev->dev_group.cg_item))
		dev = NULL;
	mutex_unlock(&g_device_mutex);
	return dev;
}
EXPORT_SYMBOL(target_find_device);

int target_configure_device(struct se_device *dev)
{
	struct se_hba *hba = dev->se_hba;
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ bool target_lun_is_rdonly(struct se_cmd *);
sense_reason_t passthrough_parse_cdb(struct se_cmd *cmd,
	sense_reason_t (*exec_cmd)(struct se_cmd *cmd));

struct	se_device *target_find_device(int id, bool do_depend);

bool target_sense_desc_format(struct se_device *dev);
sector_t target_to_linux_sector(struct se_device *dev, sector_t lb);
bool target_configure_unmap_from_queue(struct se_dev_attrib *attrib,