Browse Source

sysupgrade: sync *before* mtd write, only fallback to sysrq-trigger if standard reboot fails

SVN-Revision: 16488
Jo-Philipp Wich 16 years ago
parent
commit
c6fe201fb6
2 changed files with 5 additions and 4 deletions
  1. 1 1
      package/base-files/Makefile
  2. 4 3
      package/base-files/files/lib/upgrade/common.sh

+ 1 - 1
package/base-files/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 
 PKG_NAME:=base-files
 PKG_NAME:=base-files
-PKG_RELEASE:=22
+PKG_RELEASE:=23
 
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 
 

+ 4 - 3
package/base-files/files/lib/upgrade/common.sh

@@ -142,12 +142,12 @@ jffs2_copy_config() {
 }
 }
 
 
 default_do_upgrade() {
 default_do_upgrade() {
+	sync
 	if [ "$SAVE_CONFIG" -eq 1 -a -z "$USE_REFRESH" ]; then
 	if [ "$SAVE_CONFIG" -eq 1 -a -z "$USE_REFRESH" ]; then
 		get_image "$1" | mtd -j "$CONF_TAR" write - "${PART_NAME:-image}"
 		get_image "$1" | mtd -j "$CONF_TAR" write - "${PART_NAME:-image}"
 	else
 	else
 		get_image "$1" | mtd write - "${PART_NAME:-image}"
 		get_image "$1" | mtd write - "${PART_NAME:-image}"
 	fi
 	fi
-	sync
 }
 }
 
 
 do_upgrade() {
 do_upgrade() {
@@ -157,7 +157,7 @@ do_upgrade() {
 	else
 	else
 		default_do_upgrade "$ARGV"
 		default_do_upgrade "$ARGV"
 	fi
 	fi
-	
+
 	[ "$SAVE_CONFIG" -eq 1 -a -n "$USE_REFRESH" ] && {
 	[ "$SAVE_CONFIG" -eq 1 -a -n "$USE_REFRESH" ] && {
 		v "Refreshing partitions"
 		v "Refreshing partitions"
 		if type 'platform_refresh_partitions' >/dev/null 2>/dev/null; then
 		if type 'platform_refresh_partitions' >/dev/null 2>/dev/null; then
@@ -175,7 +175,8 @@ do_upgrade() {
 	[ -n "$DELAY" ] && sleep "$DELAY"
 	[ -n "$DELAY" ] && sleep "$DELAY"
 	ask_bool 1 "Reboot" && {
 	ask_bool 1 "Reboot" && {
 		v "Rebooting system..."
 		v "Rebooting system..."
-		echo b 2>/dev/null >/proc/sysrq-trigger
 		reboot
 		reboot
+		sleep 5
+		echo b 2>/dev/null >/proc/sysrq-trigger
 	}
 	}
 }
 }