On 7/7/2015 1:26 AM, Nicholas A. Bellinger wrote:
On Mon, 2015-06-29 at 18:32 +0300, Sagi Grimberg wrote:
LIO supports protection types 1,3 so setting a had-coded SPT=3
is fine for now.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
---
drivers/target/target_core_spc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index 08114bf..aaf1964 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -457,6 +457,9 @@ spc_emulate_evpd_86(struct se_cmd *cmd, unsigned char *buf)
buf[4] = 0x4;
}
+ /* logical unit supports type 1 and type 3 protection */
+ buf[4] |= (0x3 << 3);
+
/* Set HEADSUP, ORDSUP, SIMPSUP */
buf[5] = 0x07;
AFAICT this field is supposed to be reserved if INQUIRY PROTECT=0.
How about the following to match what spc_emulate_inquiry_std() does for
checking when PROTECT should be set, along with an extra TYPE_DISK
check..?
That's fine - why the TYPE_DISK check though?
diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index 5df4d9b..b5ba1ec 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -454,12 +454,16 @@ spc_emulate_evpd_86(struct se_cmd *cmd, unsigned char *buf)
cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE1_PROT)
buf[4] = 0x5;
else if (dev->dev_attrib.pi_prot_type == TARGET_DIF_TYPE3_PROT ||
- cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE3_PROT)
+ cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE3_PROT)
buf[4] = 0x4;
}
/* logical unit supports type 1 and type 3 protection */
- buf[4] |= (0x3 << 3);
+ if ((dev->transport->get_device_type(dev) == TYPE_DISK) &&
+ (sess->sup_prot_ops & (TARGET_PROT_DIN_PASS | TARGET_PROT_DOUT_PASS)) &&
+ (dev->dev_attrib.pi_prot_type || cmd->se_sess->sess_prot_type)) {
+ buf[4] |= (0x3 << 3);
+ }
/* Set HEADSUP, ORDSUP, SIMPSUP */
buf[5] = 0x07;
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html