--- ./source/private_module/vol/vol_res/vol_res_alloc.c	2018-05-07 11:20:51.000000000 +0000
+++ ./source/private_module/vol/vol_res/vol_res_alloc.c.hotpatch	2021-11-22 10:16:18.000000000 +0000
@@ -20050,14 +20050,14 @@
     sgl->entrySumInSgl   = 0;
 }
 
-/**************************************************************************
-     :  RES_MEM_SECTION_Sڴӿڻص
- :  [in]page:ѷ䵽ҳĵַ
-            [in]arg:Ĳ
- :  
- ֵ  :  
-     :  
-**************************************************************************/
+void addSectionToAllocQueuePatch(VOL_ALLOC_RES_S *resAlloc, SGL_S *sgl, RES_RNGQ_S *queue,
+    uint32_t queuebitLen, uint32_t tailBit);
+
+
+
+
+
+
 VOLUME_STATIC void allocSectionByAllocDone(SGL_S *sgl, void *arg)
 {
     META_RES_MGR_S  *metaMgr;
@@ -20107,7 +20107,7 @@
     /*ӷҳͳ*/
     VOL_RES_PAGE_ALLOC_INC(sgl->entrySumInChain);
 
-    addSectionToQueue(sgl, queue, roundLength, tail);
+    addSectionToAllocQueuePatch(resAlloc, sgl, queue, roundLength, tail);
 
     FREE_SGL_CHAIN(sgl);
 
@@ -20317,14 +20317,14 @@
 #endif
 }
 
-/**************************************************************************
-     :  RES_MEM_SECTION_Sڴӿڻص
- :  [in]sgl:ѷ䵽ҳĵַ
-            [in]arg:Ĳ
- :  
- ֵ  :  
-     :  
-**************************************************************************/
+void addSectionToFreeQueuePatch(VOL_FREE_RES_S *resFree, SGL_S *sgl, RES_RNGQ_S *queue,
+    uint32_t queuebitLen, uint32_t tailBit);
+
+
+
+
+
+
 VOLUME_STATIC void allocSectionByFreeDone(SGL_S *sgl, void *arg)
 {
     META_VOLUME_CTRL_S *volCtrl;
@@ -20403,7 +20403,7 @@
     /*ҳͳ*/
     VOL_RES_PAGE_ALLOC_INC(sgl->entrySumInChain);
 
-    addSectionToQueue(sgl, queue, roundLength, tail);
+    addSectionToFreeQueuePatch(resFree, sgl, queue, roundLength, tail);
 
     FREE_SGL_CHAIN(sgl);
 
--- ./source/private_module/vol/vol_res/vol_res_init.c	2018-03-14 08:21:29.000000000 +0000
+++ ./source/private_module/vol/vol_res/vol_res_init.c.hotpatch	2021-11-22 10:16:18.000000000 +0000
@@ -3981,5 +3981,25 @@
     return;
 }
 
+void addSectionToQueue(SGL_S *sgl, RES_RNGQ_S *queue, uint32_t queuebitLen, uint32_t tailBit);
+void addSectionToAllocQueuePatch(VOL_ALLOC_RES_S *resAlloc, SGL_S *sgl, RES_RNGQ_S *queue,
+    uint32_t queuebitLen, uint32_t tailBit)
+{
+    spin_lock(&resAlloc->listLock);
+    addSectionToQueue(sgl, queue, queuebitLen, tailBit);
+    spin_unlock(&resAlloc->listLock);
+    return;
+}
+
+void addSectionToFreeQueuePatch(VOL_FREE_RES_S *resFree, SGL_S *sgl, RES_RNGQ_S *queue,
+    uint32_t queuebitLen, uint32_t tailBit)
+{
+    spin_lock(&resFree->lock);
+    addSectionToQueue(sgl, queue, queuebitLen, tailBit);
+    spin_unlock(&resFree->lock);
+    return;
+}
+
+
 /* EOF */
 
