[PATCH 33/33] TCMU PR: enable PRO Clear for TCMU devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux