target-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lee Duncan <lduncan@suse.com>
To: Mike Christie <mchristi@redhat.com>,
	bvanassche@acm.org, bstroesser@ts.fujitsu.com,
	martin.petersen@oracle.com, linux-scsi@vger.kernel.org,
	target-devel@vger.kernel.org
Subject: Re: [PATCH 04/15] tcm loop: use target_parse_emulated_name
Date: Wed, 13 May 2020 23:59:20 +0000	[thread overview]
Message-ID: <2cb2e526-0ba6-f6ce-ede9-949f2ef6a49b@suse.com> (raw)
In-Reply-To: <20200510215744.21999-5-mchristi@redhat.com>

On 5/10/20 2:57 PM, Mike Christie wrote:
> Use target_parse_emulated_name so the acl and SCSI names are properly
> formatted.
> 
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
>  drivers/target/loopback/tcm_loop.c | 65 ++++++--------------------------------
>  1 file changed, 10 insertions(+), 55 deletions(-)
> 
> diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
> index 74aded7..64e5f1f 100644
> --- a/drivers/target/loopback/tcm_loop.c
> +++ b/drivers/target/loopback/tcm_loop.c
> @@ -725,7 +725,8 @@ static int tcm_loop_alloc_sess_cb(struct se_portal_group *se_tpg,
>  
>  static int tcm_loop_make_nexus(
>  	struct tcm_loop_tpg *tl_tpg,
> -	const char *name)
> +	const char *tpt_id_name,
> +	const char *acl_name)
>  {
>  	struct tcm_loop_hba *tl_hba = tl_tpg->tl_hba;
>  	struct tcm_loop_nexus *tl_nexus;
> @@ -742,7 +743,7 @@ static int tcm_loop_make_nexus(
>  
>  	tl_nexus->se_sess = target_setup_session(&tl_tpg->tl_se_tpg, 0, 0,
>  					TARGET_PROT_DIN_PASS | TARGET_PROT_DOUT_PASS,
> -					name, name, tl_nexus,
> +					tpt_id_name, acl_name, tl_nexus,
>  					tcm_loop_alloc_sess_cb);
>  	if (IS_ERR(tl_nexus->se_sess)) {
>  		ret = PTR_ERR(tl_nexus->se_sess);
> @@ -751,7 +752,7 @@ static int tcm_loop_make_nexus(
>  	}
>  
>  	pr_debug("TCM_Loop_ConfigFS: Established I_T Nexus to emulated %s Initiator Port: %s\n",
> -		 tcm_loop_dump_proto_id(tl_hba), name);
> +		 tcm_loop_dump_proto_id(tl_hba), acl_name);
>  	return 0;
>  }
>  
> @@ -814,7 +815,7 @@ static ssize_t tcm_loop_tpg_nexus_store(struct config_item *item,
>  	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;
> -	unsigned char i_port[TL_WWN_ADDR_LEN], *ptr, *port_ptr;
> +	unsigned char i_port[TL_WWN_ADDR_LEN], *tpt_id_name;
>  	int ret;
>  	/*
>  	 * Shutdown the active I_T nexus if 'NULL' is passed..
> @@ -823,59 +824,13 @@ static ssize_t tcm_loop_tpg_nexus_store(struct config_item *item,
>  		ret = tcm_loop_drop_nexus(tl_tpg);
>  		return (!ret) ? count : ret;
>  	}
> -	/*
> -	 * Otherwise make sure the passed virtual Initiator port WWN matches
> -	 * the fabric protocol_id set in tcm_loop_make_scsi_hba(), and call
> -	 * tcm_loop_make_nexus()
> -	 */
> -	if (strlen(page) >= TL_WWN_ADDR_LEN) {
> -		pr_err("Emulated NAA Sas Address: %s, exceeds max: %d\n",
> -		       page, TL_WWN_ADDR_LEN);
> -		return -EINVAL;
> -	}
> -	snprintf(&i_port[0], TL_WWN_ADDR_LEN, "%s", page);
>  
> -	ptr = strstr(i_port, "naa.");
> -	if (ptr) {
> -		if (tl_hba->tl_proto_id != SCSI_PROTOCOL_SAS) {
> -			pr_err("Passed SAS Initiator Port %s does not match target port protoid: %s\n",
> -			       i_port, tcm_loop_dump_proto_id(tl_hba));
> -			return -EINVAL;
> -		}
> -		port_ptr = &i_port[0];
> -		goto check_newline;
> -	}
> -	ptr = strstr(i_port, "fc.");
> -	if (ptr) {
> -		if (tl_hba->tl_proto_id != SCSI_PROTOCOL_FCP) {
> -			pr_err("Passed FCP Initiator Port %s does not match target port protoid: %s\n",
> -			       i_port, tcm_loop_dump_proto_id(tl_hba));
> -			return -EINVAL;
> -		}
> -		port_ptr = &i_port[3]; /* Skip over "fc." */
> -		goto check_newline;
> -	}
> -	ptr = strstr(i_port, "iqn.");
> -	if (ptr) {
> -		if (tl_hba->tl_proto_id != SCSI_PROTOCOL_ISCSI) {
> -			pr_err("Passed iSCSI Initiator Port %s does not match target port protoid: %s\n",
> -			       i_port, tcm_loop_dump_proto_id(tl_hba));
> -			return -EINVAL;
> -		}
> -		port_ptr = &i_port[0];
> -		goto check_newline;
> -	}
> -	pr_err("Unable to locate prefix for emulated Initiator Port: %s\n",
> -	       i_port);
> -	return -EINVAL;
> -	/*
> -	 * Clear any trailing newline for the NAA WWN
> -	 */
> -check_newline:
> -	if (i_port[strlen(i_port)-1] = '\n')
> -		i_port[strlen(i_port)-1] = '\0';
> +	ret = target_parse_emulated_name(tl_hba->tl_proto_id, page, i_port,
> +					 TL_WWN_ADDR_LEN, &tpt_id_name);
> +	if (ret)
> +		return ret;
>  
> -	ret = tcm_loop_make_nexus(tl_tpg, port_ptr);
> +	ret = tcm_loop_make_nexus(tl_tpg, tpt_id_name, i_port);
>  	if (ret < 0)
>  		return ret;
>  
> 

Reviewed-by: Lee Duncan <lduncan@suse.com>

  parent reply	other threads:[~2020-05-13 23:59 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-10 21:57 [PATCH v5 00/15] target: add sysfs support Mike Christie
2020-05-10 21:57 ` [PATCH 01/15] target: check enforce_pr_isids during registration Mike Christie
2020-05-11  6:08   ` Hannes Reinecke
2020-05-13 20:55   ` Lee Duncan
2020-05-10 21:57 ` [PATCH 02/15] target: separate acl name from port ids Mike Christie
2020-05-11  6:09   ` Hannes Reinecke
2020-05-13 23:35   ` Lee Duncan
2020-05-10 21:57 ` [PATCH 03/15] target: add helper to parse acl and transport name Mike Christie
2020-05-11  6:09   ` Hannes Reinecke
2020-05-11 18:22   ` Bodo Stroesser
2020-05-11 21:04     ` Mike Christie
2020-05-13 23:57   ` Lee Duncan
2020-05-10 21:57 ` [PATCH 04/15] tcm loop: use target_parse_emulated_name Mike Christie
2020-05-11  6:10   ` Hannes Reinecke
2020-05-13 23:59   ` Lee Duncan [this message]
2020-05-10 21:57 ` [PATCH 05/15] vhost scsi: " Mike Christie
2020-05-11  6:11   ` Hannes Reinecke
2020-05-10 21:57 ` [PATCH 06/15] xen scsiback: " Mike Christie
2020-05-11  6:11   ` Hannes Reinecke
2020-05-11  6:16   ` Jürgen Groß
2020-05-10 21:57 ` [PATCH 07/15] iscsi target: setup transport_id Mike Christie
2020-05-11  6:12   ` Hannes Reinecke
2020-05-10 21:57 ` [PATCH 08/15] target: use tpt_id in target_stat_iport_port_ident_show Mike Christie
2020-05-11  6:13   ` Hannes Reinecke
2020-05-10 21:57 ` [PATCH 09/15] target: drop sess_get_initiator_sid from PR code Mike Christie
2020-05-11  6:13   ` Hannes Reinecke
2020-05-10 21:57 ` [PATCH 10/15] target: drop sess_get_initiator_sid Mike Christie
2020-05-11  6:14   ` Hannes Reinecke
2020-05-10 21:57 ` [PATCH 11/15] target: add sysfs support Mike Christie
2020-05-11  6:21   ` Hannes Reinecke
2020-05-11  6:30   ` Greg Kroah-Hartman
2020-05-11 17:15     ` Mike Christie
2020-05-12  5:54       ` Greg Kroah-Hartman
2020-05-10 21:57 ` [PATCH 12/15] target: add sysfs session helper functions Mike Christie
2020-05-11 18:39   ` Bodo Stroesser
2020-05-11 19:21     ` Bart Van Assche
2020-05-11 20:16       ` Mike Christie
2020-05-12 11:19         ` Bodo Stroesser
2020-05-12 15:55           ` Mike Christie
2020-05-10 21:57 ` [PATCH 13/15] target: add target_setup_session sysfs support Mike Christie
2020-05-10 21:57 ` [PATCH 14/15] iscsi target: use session sysfs helpers Mike Christie
2020-05-10 21:57 ` [PATCH 15/15] target: drop sess_get_index Mike Christie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2cb2e526-0ba6-f6ce-ede9-949f2ef6a49b@suse.com \
    --to=lduncan@suse.com \
    --cc=bstroesser@ts.fujitsu.com \
    --cc=bvanassche@acm.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mchristi@redhat.com \
    --cc=target-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).