Re: [PATCH] tcm_loop: Show address of tpg in configfs

From: Sheng Yang
Date: Tue Oct 27 2015 - 19:02:46 EST


Anyone interested in TCM loopback device?

--Sheng

On Thu, Oct 22, 2015 at 11:28 AM, Sheng Yang <sheng@xxxxxxxxxx> wrote:
> In the past, the scsi_host's number wasn't shown anywhere, user have to
> depends on vpg_83 to find the block device, which is also depends on
> backstore implementation.
>
> It's better for tcm_loop to provide necessary straightforward information
> on locate the block device it created.
>
> This patch would help to locate the block device created by tcm_loop. The
> address would be shown at e.g.
>
> /sys/kernel/config/target/loopback/naa.60014059436855c1/tpgt_1/address
>
> which would looks like "2:0:1", and the lun number can be found at
> "/tpgt_1/lun/lun_0". Altogether they formated the scsi address of device
> as "2:0:1:0", which can be used to locate the device easily through
> 'lsscsi'.
>
> Signed-off-by: Sheng Yang <sheng@xxxxxxxxxx>
> ---
> drivers/target/loopback/tcm_loop.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
> index 5bc85ff..a38ddd6 100644
> --- a/drivers/target/loopback/tcm_loop.c
> +++ b/drivers/target/loopback/tcm_loop.c
> @@ -1046,9 +1046,26 @@ static ssize_t tcm_loop_tpg_store_transport_status(
>
> TF_TPG_BASE_ATTR(tcm_loop, transport_status, S_IRUGO | S_IWUSR);
>
> +static ssize_t tcm_loop_tpg_show_address(
> + struct se_portal_group *se_tpg,
> + char *page)
> +{
> + struct tcm_loop_tpg *tl_tpg = container_of(se_tpg,
> + struct tcm_loop_tpg, tl_se_tpg);
> + struct tcm_loop_hba *tl_hba = tl_tpg->tl_hba;
> + ssize_t ret = -EINVAL;
> +
> + ret = snprintf(page, PAGE_SIZE, "%d:0:%d\n",
> + tl_hba->sh->host_no, tl_tpg->tl_tpgt);
> + return ret;
> +}
> +
> +TF_TPG_BASE_ATTR_RO(tcm_loop, address);
> +
> static struct configfs_attribute *tcm_loop_tpg_attrs[] = {
> &tcm_loop_tpg_nexus.attr,
> &tcm_loop_tpg_transport_status.attr,
> + &tcm_loop_tpg_address.attr,
> NULL,
> };
>
> --
> 2.1.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/