From 1efaaedcce0c880464583f133a9f91f8d126f14a Mon Sep 17 00:00:00 2001
From: 13914885250 <shanyongheng3@huawei.com>
Date: Tue, 20 Aug 2024 17:33:10 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=95=99=E7=B1=BB=E5=9E=8B=E7=94=B16?=
 =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=BA5=EF=BC=88=E5=8F=AA=E9=99=90?=
 =?UTF-8?q?=E5=88=B6=E5=86=99=EF=BC=8C=E4=B8=8D=E9=99=90=E5=88=B6=E8=AF=BB?=
 =?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/common/dss_io_fence.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/common/dss_io_fence.c b/src/common/dss_io_fence.c
index ab0ae07..b503fea 100644
--- a/src/common/dss_io_fence.c
+++ b/src/common/dss_io_fence.c
@@ -78,6 +78,7 @@ status_t dss_iof_kick_one_volume(char *dev, int64 rk, int64 rk_kick, ptlist_t *r
     reg_info.rk = rk;
     reg_info.rk_kick = rk_kick;
     reg_info.dev = dev;
+    reg_info,type = RESERV_TYPE_REGISTER_WRITE;
 
     is_reg = dss_iof_is_register(dev, rk, regs);
     if (!is_reg) {
@@ -97,10 +98,14 @@ status_t dss_iof_kick_one_volume(char *dev, int64 rk, int64 rk_kick, ptlist_t *r
 
     status = cm_iof_kick(&reg_info);
     if (status != CM_SUCCESS) {
-        LOG_DEBUG_ERR(
-            "[FENCE][KICK] kick dev failed, org rk %lld, org sark %lld, dev %s.", reg_info.rk, reg_info.rk_kick,
-            reg_info.dev);
-        return status;
+        // To be compatible with the earlier version, use type 6 to try again.
+        reg_info,type = RESERV_TYPE_REGISTER_ACCESS;
+        status = cm_iof_kick(&reg_info);
+        if (status != CM_SUCCESS) {
+            LOG_DEBUG_ERR("[FENCE][KICK] kick dev failed, org rk %lld, org sark %lld, dev %s.", reg_info.rk,
+                reg_info.rk_kick, reg_info.dev);
+            return status;
+        }
     }
 #endif
     return CM_SUCCESS;
@@ -236,6 +241,8 @@ status_t dss_iof_register_single(int64 rk, char *dev)
     iof_reg_out_t reg_info;
     reg_info.rk = rk;
     reg_info.dev = dev;
+    reg_info,type = RESERV_TYPE_REGISTER_WRITE;
+    
     status_t ret = cm_iof_register(&reg_info);
     if (ret != CM_SUCCESS) {
         if (ret != CM_IOF_ERR_DUP_OP) {
-- 
Gitee