This patch would enable the passthrough Persist Reservation clear operation routine for TCMU devices. If dev->passthrough_pr is 1, both dev->transport->pr_ops and dev->transport->pr_ops->pr_clear are not NULL, core_scsi3_emulate_pro_clear() will call dev->transport->pr_ops->pr_clear to passthrough PR clear request to user space Signed-off-by: Zhu Lingshan <lszhu@xxxxxxxx> --- drivers/target/target_core_pr.c | 5 +++++ drivers/target/target_core_user.c | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c index c668dfb84bf1..66bb52ab0209 100644 --- a/drivers/target/target_core_pr.c +++ b/drivers/target/target_core_pr.c @@ -2719,6 +2719,11 @@ core_scsi3_emulate_pro_clear(struct se_cmd *cmd, u64 res_key) struct t10_pr_registration *pr_reg, *pr_reg_tmp, *pr_reg_n, *pr_res_holder; u64 pr_res_mapped_lun = 0; int calling_it_nexus = 0; + + if (dev->transport->pr_ops && dev->transport->pr_ops->pr_read_keys + && dev->passthrough_pr) + return dev->transport->pr_ops->pr_clear(cmd, res_key); + /* * Locate the existing *pr_reg via struct se_node_acl pointers */ diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index c8d0ea330984..c417021f7099 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c @@ -4115,6 +4115,7 @@ static struct target_pr_ops tcmu_pr_ops = { .pr_register = tcmu_execute_pr_register, .pr_reserve = tcmu_execute_pr_reserve, .pr_release = tcmu_execute_pr_release, + .pr_clear = tcmu_execute_pr_clear, }; static struct target_backend_ops tcmu_ops = { -- 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