From: Sagi Grimberg <sagig@dev.mellanox.co.il>
To: "Nicholas A. Bellinger" <nab@daterainc.com>,
target-devel <target-devel@vger.kernel.org>
Cc: linux-scsi <linux-scsi@vger.kernel.org>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Sagi Grimberg <sagig@mellanox.com>,
Or Gerlitz <ogerlitz@mellanox.com>,
Quinn Tran <quinn.tran@qlogic.com>,
Giridhar Malavali <giridhar.malavali@qlogic.com>,
Nicholas Bellinger <nab@linux-iscsi.org>
Subject: Re: [PATCH 8/9] target/sbc: Add sbc_dif_read_strip software emulation
Date: Mon, 07 Apr 2014 10:44:24 +0300 [thread overview]
Message-ID: <53425758.8030001@dev.mellanox.co.il> (raw)
In-Reply-To: <1396517753-23546-9-git-send-email-nab@daterainc.com>
On 4/3/2014 12:35 PM, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> Split up __sbc_dif_verify_read() so that VERIFY READ emulation can
> perform target-core specific READ_STRIP, seperate from the existing
> FILEIO/RAMDISK backend emulation code.
>
> Also add sbc_dif_read_strip() in order to determine number of sectors
> using cmd->prot_length, and skip the extra sbc_dif_copy_prot().
>
> Cc: Martin K. Petersen <martin.petersen@oracle.com>
> Cc: Sagi Grimberg <sagig@mellanox.com>
> Cc: Or Gerlitz <ogerlitz@mellanox.com>
> Cc: Quinn Tran <quinn.tran@qlogic.com>
> Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
> ---
> drivers/target/target_core_sbc.c | 31 +++++++++++++++++++++++++++----
> include/target/target_core_backend.h | 1 +
> 2 files changed, 28 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
> index 97b207d..55c3526 100644
> --- a/drivers/target/target_core_sbc.c
> +++ b/drivers/target/target_core_sbc.c
> @@ -1271,9 +1271,9 @@ sbc_dif_verify_write(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> }
> EXPORT_SYMBOL(sbc_dif_verify_write);
>
> -sense_reason_t
> -sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> - unsigned int ei_lba, struct scatterlist *sg, int sg_off)
> +static sense_reason_t
> +__sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> + unsigned int ei_lba, struct scatterlist *sg, int sg_off)
> {
> struct se_device *dev = cmd->se_dev;
> struct se_dif_v1_tuple *sdt;
> @@ -1326,8 +1326,31 @@ sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> kunmap_atomic(paddr);
> kunmap_atomic(daddr);
> }
> - sbc_dif_copy_prot(cmd, sectors, true, sg, sg_off);
>
> return 0;
> }
> +
> +sense_reason_t
> +sbc_dif_read_strip(struct se_cmd *cmd)
> +{
> + struct se_device *dev = cmd->se_dev;
> + u32 sectors = cmd->prot_length / dev->prot_length;
> +
> + return __sbc_dif_verify_read(cmd, cmd->t_task_lba, sectors, 0,
> + cmd->t_prot_sg, 0);
> +}
> +
> +sense_reason_t
> +sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> + unsigned int ei_lba, struct scatterlist *sg, int sg_off)
> +{
> + sense_reason_t rc;
> +
> + rc = __sbc_dif_verify_read(cmd, start, sectors, ei_lba, sg, sg_off);
> + if (rc)
> + return rc;
> +
> + sbc_dif_copy_prot(cmd, sectors, true, sg, sg_off);
> + return 0;
> +}
> EXPORT_SYMBOL(sbc_dif_verify_read);
> diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h
> index 8e6eac6..68e2820 100644
> --- a/include/target/target_core_backend.h
> +++ b/include/target/target_core_backend.h
> @@ -78,6 +78,7 @@ sense_reason_t sbc_dif_verify_write(struct se_cmd *, sector_t, unsigned int,
> unsigned int, struct scatterlist *, int);
> sense_reason_t sbc_dif_verify_read(struct se_cmd *, sector_t, unsigned int,
> unsigned int, struct scatterlist *, int);
> +sense_reason_t sbc_dif_read_strip(struct se_cmd *);
>
> void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
> int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
Looks good to me.
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
next prev parent reply other threads:[~2014-04-07 7:44 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-03 9:35 [PATCH 0/9] target: Allow fabric to expose PI + add WRITE_INSERT/READ_STRIP Nicholas A. Bellinger
2014-04-03 9:35 ` [PATCH 1/9] target/iblock: Fix double bioset_integrity_free bug Nicholas A. Bellinger
2014-04-07 7:19 ` Sagi Grimberg
2014-04-03 9:35 ` [PATCH 2/9] target: Pass in transport supported PI at session initialization Nicholas A. Bellinger
2014-04-07 7:28 ` Sagi Grimberg
2014-04-07 8:01 ` Nicholas A. Bellinger
2014-04-03 9:35 ` [PATCH 3/9] target/spc: Only expose PI inquiry bits when supported by fabric Nicholas A. Bellinger
2014-04-07 7:30 ` Sagi Grimberg
2014-04-03 9:35 ` [PATCH 4/9] target/spc: Only expose PI mode page " Nicholas A. Bellinger
2014-04-07 7:31 ` Sagi Grimberg
2014-04-03 9:35 ` [PATCH 5/9] target/sbc: Only expose PI read_cap16 " Nicholas A. Bellinger
2014-04-07 7:32 ` Sagi Grimberg
2014-04-03 9:35 ` [PATCH 6/9] target/sbc: Add sbc_dif_write_insert software emulation Nicholas A. Bellinger
2014-04-07 7:36 ` Sagi Grimberg
2014-04-07 8:07 ` Nicholas A. Bellinger
2014-04-03 9:35 ` [PATCH 7/9] target: Enable WRITE_INSERT emulation in target_execute_cmd Nicholas A. Bellinger
2014-04-07 7:39 ` Sagi Grimberg
2014-04-07 8:11 ` Nicholas A. Bellinger
2014-04-07 8:13 ` sagi grimberg
2014-04-03 9:35 ` [PATCH 8/9] target/sbc: Add sbc_dif_read_strip software emulation Nicholas A. Bellinger
2014-04-07 7:44 ` Sagi Grimberg [this message]
2014-04-03 9:35 ` [PATCH 9/9] target: Enable READ_STRIP emulation in target_complete_ok_work Nicholas A. Bellinger
2014-04-07 7:49 ` Sagi Grimberg
2014-04-07 8:15 ` Nicholas A. Bellinger
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=53425758.8030001@dev.mellanox.co.il \
--to=sagig@dev.mellanox.co.il \
--cc=giridhar.malavali@qlogic.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=nab@daterainc.com \
--cc=nab@linux-iscsi.org \
--cc=ogerlitz@mellanox.com \
--cc=quinn.tran@qlogic.com \
--cc=sagig@mellanox.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