--- ./source/private_module/pair/pair_io_proc.c	2018-04-28 09:34:59.000000000 +0000
+++ ./source/private_module/pair/pair_io_proc.c.hotpatch	2020-11-12 08:49:55.000000000 +0000
@@ -9078,14 +9078,19 @@
     freeReqAndCallBack(pairReq);
     return;
 }
+void addToFilterReturnTimeout(REQ_S *pairReq)
+{
+    PAIR_IO_SRC_REQ_CONTEXT_S *context = NULL;
 
-/**************************************************************************
-     : ilockĻص
- : ilock: ilock,ͷʱʹ;ԴpairʼʱԤ,2host io
- : 
-   ֵ: 
-     : 
-**************************************************************************/
+    context = GET_USER_BUFF(pairReq, sizeof(PAIR_IO_SRC_REQ_CONTEXT_S));
+    if (NULL != context->ilock)
+    {
+        releaseIlock(context->ilock);
+        context->ilock = NULL;
+    }
+    addToFilterReturnErr(pairReq, RETURN_IO_BUSY_NEED_RETRY);
+    return;
+}
 void addToFilterCallback(ILOCK_LOCKOBJ_S *ilock, void *context)
 {
     REQ_S* req = NULL;
@@ -9110,8 +9115,9 @@
                 DBG_LOG_INFO, DBG_LOGID_BUTT, "apply ilock timeout,latency:%llu(ms),op(%u),objId(%llu),"
                 "lba(%llu), len(%u),reqOp(%u).", latency, PAIR_COUNTER_REQ_TO_FILTER,
                 req->objectId,req->objectLba, req->length, req->opCode);
-        releaseIlock(ilock);
-        addToFilterReturnErr(req, RETURN_IO_BUSY_NEED_RETRY);
+        srcContext->ilock = ilock;
+        PUSH_CALLBACK_FUNC(req, addToFilterReturnTimeout);
+        IOD_ADD_STARTQ(req);
     }
     else
     {
@@ -9129,19 +9135,13 @@
         }
         
         /* ilockɹ,ֱ·REQ */
-        srcContext->ilock = ilock;
+        
+		srcContext->ilock = ilock;
         pairIoStartInf(req);
     }
+	
     return;
 }
-
-/**************************************************************************
-     : : lbaȥ(λʱֻͬλֻ·һreq)
- : REQ_S* req:Դlun 
- : 
-   ֵ: 
-     : 
-**************************************************************************/
 static void addPairIoToIoFilter(REQ_S *pairReq)
 {
     int32_t ret = 0;
