--- ./source/private_module/lun/lun_io/lun_io_proc.c	2018-04-19 08:47:18.000000000 +0000
+++ ./source/private_module/lun/lun_io/lun_io_proc.c.hotpatch	2019-02-28 03:48:44.000000000 +0000
@@ -592,7 +592,7 @@
 void recordSubWriteRepairReqRet(REQ_S *subReq, bool isWRSuccessed);
 void allocSubReadRepairReqInfo(REQ_S *subReq);
 void delSubReadRepairReqFromWaitList(bool needDecConcur);
-
+void changeLunPVTReqRet(REQ_S *req, lunid_t lunId);
 
 /* ȫֶģʱʼ*/
 /* LUN IOEBS IOĲ */
@@ -12037,11 +12037,8 @@
     REQ_S * fCpyreq = NULL;
     lunid_t devLunId;
     DEVLUN_IO_PRIVATE_S *ioPrivateInfo = NULL;
-
-    /*ǷҪת*/
     ioPrivateInfo = (DEVLUN_IO_PRIVATE_S *)(void *)req->producerPrivate;
     devLunId = (lunid_t)req->objectId;
-
     LVOS_TP_NOPARAM_START(FC_LUN_1_200_1)
     LVOS_TP_END
 
@@ -12050,21 +12047,25 @@
     /* ⵥ: AR-0000671058 []Ż, l90005707, 20140120, begin */
     if (isNeedSendToRemote(req)
         && (0 != vols_test_bit(LUNIO_ATTR_LOCALIO_BIT, (void *)&ioPrivateInfo->ioPrivateFlag)))
-    /* ⵥ: AR-0000671058 []Ż, l90005707, 20140120, end */
-    /* ⵥ: DTS2013110201780 FULL COPYת²LUNܻᵼ, l90006726, 20131104, end */
+
     {
         ret = devLunSendPvtReqToRemote(req);
         if (unlikely(RETURN_OK != ret))
         {
             req->result = RETURN_IO_RW_ERROR_NO_RETRY;
             ioPrivateInfo->ioStep = LUN_IO_STEP_RW_DONE;
-
             IOD_ADD_DONEQ(req);
             return RETURN_ERROR;
         }
     }
     else
     {
+        if (IS_HYPER_CLUSTER_LUN_STOPPED_WORK(g_innerLunCtrlArray[devLunId].hyperClusterLunStat))
+        {
+            req->result = RETURN_ODX_INVALID_FIELD_IN_PARAM_LIST;
+	        devLunProcReqFail(req);
+            return RETURN_ERROR;
+        }
         copyReq2Genio(&genIo, req);
 
         /* ODX޸; t90006784, 20141119, begin */
@@ -12083,7 +12084,6 @@
 
             req->result = RETURN_IO_RW_ERROR_NO_RETRY;
             //ioPrivateInfo->ioStep = LUN_IO_STEP_RW_DONE;
-
             //IOD_ADD_DONEQ(req);
             devLunProcReqFail(req);
             return RETURN_ERROR;
@@ -18066,7 +18066,6 @@
 
     devLunId = (lunid_t)req->objectId;
     ioPrivateInfo = (DEVLUN_IO_PRIVATE_S *)(void *)req->producerPrivate;
-
     /* ⵥ: DTS2016121604886, DIF޸֧޸BST, h00248495, 2016/12/8, begin */
     /* ⵥ: SR-0000476468, 2015H1Ż-FTDS, h00248495, 2015/1/17, begin */
     devLunBackLocalReqRtt(req);
@@ -18079,12 +18078,13 @@
     {
         return RETURN_OK;
     }
-
     if (unlikely(RETURN_OK != req->result))
     {
         changeLunReqRet(req);
     }
-
+    else{
+        changeLunPVTReqRet(req, devLunId);
+    }
     /* IOҪQos */
     if (isNeedDecQosCntOpt(req->opCode))
     {
@@ -28017,3 +28017,12 @@
     return (isHostIoAbort(lunId, lba, len));
 }
 
+void changeLunPVTReqRet(REQ_S *req, lunid_t lunId)
+{
+    if (IS_HYPER_CLUSTER_LUN_STOPPED_WORK(g_innerLunCtrlArray[lunId].hyperClusterLunStat)
+        && (OP_PVT_MSG == req->opCode))
+    {	
+        req->result = RETURN_ODX_INVALID_FIELD_IN_PARAM_LIST;
+    }
+    return;
+}
\ No newline at end of file
