Commit data changes after the upgrade success 84/260784/5
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Thu, 17 Jun 2021 11:48:52 +0000 (13:48 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 30 Jul 2021 12:25:15 +0000 (14:25 +0200)
Change-Id: I87d238fce61ebbabe2710e143edd0b7646c36e96

upgrade/update.sh.in

index 2d065ddfd43a6736f39af295d936ed604f322671..4339f95b4a1d0a6828ba97419d54136baf960a8a 100755 (executable)
@@ -2,7 +2,8 @@
 #
 # System RW Update Script
 #
-
+STATUS_FILE="/opt/data/update/RW.STATUS"
+STAT="/usr/bin/stat"
 COLOR_ERROR='\033[01;31m'
 COLOR_DEBUG='\033[01;34m'
 COLOR_NOTIFY='\033[01;33m'
@@ -64,6 +65,52 @@ SET_UPDATE_RESULT()
        echo "$1" > ${UPDATE_RESULT_FILE}
 }
 
+COMMIT_BOW_PARTITION()
+{
+       LABEL=${1}
+
+       BOWDEV_PATH=/dev/mapper/bowdev_${LABEL}
+       DM_NUMBER=$(($("${STAT}" -c "0x%T" $(readlink -f ${BOWDEV_PATH}))))
+       echo 2 > /sys/block/dm-${DM_NUMBER}/bow/state
+       NOTIFY "Changes on partition ${LABEL} commited (dm-bow)"
+}
+
+COMMIT_F2FS_PARTITION()
+{
+       LABEL=${1}
+       PART_DEVICE=${2}
+
+       mount -o remount,checkpoint=enable "${PART_DEVICE}"
+       NOTIFY "Changes on partition ${LABEL} commited (f2fs)"
+}
+
+COMMIT_PARTITION()
+{
+       LABEL=${1}
+
+       PART_DEVICE=$(blkid --match-token PARTLABEL="${LABEL}" -o device || blkid --match-token LABEL="${LABEL}" -o device)
+       if [ -z "${PART_DEVICE}" ]; then
+               NOTIFY "WARNING: Partition ${LABEL} not found"
+               return
+       fi
+
+       TYPE=$(blkid --match-token LABEL="${LABEL}" -o value -s TYPE | tail -n 1)
+       if [ "${TYPE}" = "ext4" ]; then
+               COMMIT_BOW_PARTITION "${LABEL}"
+       elif [ "${TYPE}" = "f2fs" ]; then
+               COMMIT_F2FS_PARTITION "${LABEL}" ${PART_DEVICE}
+       else
+               ERROR "ERROR: Cannot commit ${LABEL}: Unsupported filesystem ${TYPE}"
+       fi
+}
+
+COMMIT_CHANGES()
+{
+       rm ${STATUS_FILE}
+       COMMIT_PARTITION system-data
+       COMMIT_PARTITION user
+}
+
 NOTIFY "----------------------------------------------------------------------"
 NOTIFY "System RW update: rw update started"
 
@@ -130,5 +177,6 @@ fi
 /bin/sync
 NOTIFY "----------------------------------------------------------------------"
 
+COMMIT_CHANGES
 #Reboot
 reboot -f