target/rd: Add checks for backend DIF emulation
Make sure that RAMDISK only attempts to use backend DIF emulation when it's actually enabled at device level. Cc: Martin Petersen <martin.petersen@oracle.com> Cc: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
6f16ec43e0
commit
1762742f3f
|
@ -419,7 +419,8 @@ rd_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
|
||||||
data_direction == DMA_FROM_DEVICE ? "Read" : "Write",
|
data_direction == DMA_FROM_DEVICE ? "Read" : "Write",
|
||||||
cmd->t_task_lba, rd_size, rd_page, rd_offset);
|
cmd->t_task_lba, rd_size, rd_page, rd_offset);
|
||||||
|
|
||||||
if (cmd->prot_type && data_direction == DMA_TO_DEVICE) {
|
if (cmd->prot_type && se_dev->dev_attrib.pi_prot_type &&
|
||||||
|
data_direction == DMA_TO_DEVICE) {
|
||||||
struct rd_dev_sg_table *prot_table;
|
struct rd_dev_sg_table *prot_table;
|
||||||
struct scatterlist *prot_sg;
|
struct scatterlist *prot_sg;
|
||||||
u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;
|
u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;
|
||||||
|
@ -502,7 +503,8 @@ rd_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
|
||||||
}
|
}
|
||||||
sg_miter_stop(&m);
|
sg_miter_stop(&m);
|
||||||
|
|
||||||
if (cmd->prot_type && data_direction == DMA_FROM_DEVICE) {
|
if (cmd->prot_type && se_dev->dev_attrib.pi_prot_type &&
|
||||||
|
data_direction == DMA_FROM_DEVICE) {
|
||||||
struct rd_dev_sg_table *prot_table;
|
struct rd_dev_sg_table *prot_table;
|
||||||
struct scatterlist *prot_sg;
|
struct scatterlist *prot_sg;
|
||||||
u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;
|
u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;
|
||||||
|
|
Loading…
Reference in New Issue