mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 09:36:48 +07:00
target: reject COMPARE_AND_WRITE if emulate_caw is not set
In struct se_dev_attrib, there is a field emulate_caw exposed as a /sys/kernel/config/target/core/$HBA/$DEV/attrib/. If this field is set zero, it means the corresponding struct se_device does not support the scsi cmd COMPARE_AND_WRITE In function sbc_parse_cdb(), go ahead and reject scsi COMPARE_AND_WRITE if emulate_caw is not set, because it has been explicitly disabled from user-space. (Make pr_err ratelimited - nab) Signed-off-by: Jiang Yi <jiangyilism@gmail.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
eceb4459df
commit
12f66e4a0f
@ -1005,6 +1005,12 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops)
|
||||
break;
|
||||
}
|
||||
case COMPARE_AND_WRITE:
|
||||
if (!dev->dev_attrib.emulate_caw) {
|
||||
pr_err_ratelimited("se_device %s/%s (vpd_unit_serial %s) reject"
|
||||
" COMPARE_AND_WRITE\n", dev->se_hba->backend->ops->name,
|
||||
dev->dev_group.cg_item.ci_name, dev->t10_wwn.unit_serial);
|
||||
return TCM_UNSUPPORTED_SCSI_OPCODE;
|
||||
}
|
||||
sectors = cdb[13];
|
||||
/*
|
||||
* Currently enforce COMPARE_AND_WRITE for a single sector
|
||||
|
Loading…
Reference in New Issue
Block a user