--- ./source/private_module/dbapp/db_lun.c	2018-04-09 06:26:00.000000000 +0000
+++ ./source/private_module/dbapp/db_lun.c.hotpatch	2019-05-18 10:25:54.000000000 +0000
@@ -3229,7 +3229,7 @@
     /* DBlun ioȼڽӦڴqosȼ */
     dbSrcLunInfo->virtualGrainSize = dbDstLunInfo->virtualGrainSize;
     dbSrcLunInfo->cowGrainSize = dbDstLunInfo->cowGrainSize;
-
+    dbSrcLunInfo->preUserLunCapacity = dbDstLunInfo->preUserLunCapacity;
     DBG_LogDebug(DBG_LOGID_NEW, "DB_LUN: dbSrcLunInfo->cowGrainSize %u, "
         "dbSrcLunInfo->lunId %u, dbDstLunInfo->lunId %u.",
         dbSrcLunInfo->cowGrainSize, dbSrcLunInfo->lunId, dbDstLunInfo->lunId);
@@ -5252,7 +5252,7 @@
 
     return;
 }
-
+void convertLunDbFieldPreUserLunCapacity(DB_LUN_S *lunItem);
 /*****************************************************************************
      : convertLunCowGrainSize
    : תcow grain size
@@ -5338,7 +5338,7 @@
             LUN_COW_GRAIN_SIZE_64K : lunItem->cowGrainSize);
 
         /* LUNҪһ*/
-        lunItem->preUserLunCapacity = lunItem->userLunCapacity;
+        convertLunDbFieldPreUserLunCapacity(lunItem);
     }
 
     DBG_LogInfo(DBG_LOGID_NEW, "DB_LUN_UPGRADE cowGrainSize: old DB version(%x) to new DB version(%x) end.",
@@ -6181,3 +6181,23 @@
 }
 EXPORT_SYMBOL(DB_IsLunInExpanding);
 
+#define IS_LUN_EXPANDING_BIT_SET(lunTypeByBit) (0 < (SYS_LUNMUTEX_LUN_EXPAND_JOINT_LUN_BIT & (lunTypeByBit)))
+void convertLunDbFieldPreUserLunCapacity(DB_LUN_S *lunItem)
+{
+    if (NULL == lunItem)
+    {
+        return;
+    }
+
+    /* 1preUserLunCapacityDBֵʼΪ0޵еİ汾Ҫǰֵ
+     * ޸ĳɵǰֵебֲ
+     * 2δ״̬preUserLunCapacityuserLunCapacityҪһ
+     */
+    if ((0 == lunItem->preUserLunCapacity) || !IS_LUN_EXPANDING_BIT_SET(lunItem->lunTypeByBit))
+    {
+        lunItem->preUserLunCapacity = lunItem->userLunCapacity;
+    }
+
+    return;
+}
+
