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>
next prev 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).