This patch would enable the passthrough Persist Reservation Release operation routine for TCMU devices. If dev->passthrough_pr is 1, both dev->transport->pr_ops and dev->transport->pr_ops->pr_release are not NULL, core_scsi3_emulate_pro_release() will call dev->transport->pr_ops->pr_release to passthrough PR release request to user space Signed-off-by: Zhu Lingshan <lszhu@xxxxxxxx> --- drivers/target/target_core_pr.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c index d47ccbf05679..c668dfb84bf1 100644 --- a/drivers/target/target_core_pr.c +++ b/drivers/target/target_core_pr.c @@ -2554,6 +2554,15 @@ core_scsi3_emulate_pro_release(struct se_cmd *cmd, int type, int scope, struct t10_reservation *pr_tmpl = &dev->t10_pr; sense_reason_t ret = 0; + if (dev->transport->pr_ops && dev->transport->pr_ops->pr_register + && dev->passthrough_pr) { + if (scope != PR_SCOPE_LU_SCOPE) { + pr_err("SPC-3 PR: Illegal SCOPE: 0x%02x\n", scope); + return TCM_INVALID_PARAMETER_LIST; + } + return dev->transport->pr_ops->pr_release(cmd, type, res_key); + } + if (!se_sess || !se_lun) { pr_err("SPC-3 PR: se_sess || struct se_lun is NULL!\n"); return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; -- 2.17.1 -- 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