mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Due to filesystem write caching the old configuration data could stay out of flash for a long time during a first boot after the sysupgrade. Power loss during this period could damage the overlay data and even make device inaccessable via the network. Fix this by syncing data to a flash as soon as the previous configuration will be unpacked after the sysupgrade. Also sync the FS state after the sysupgrade.tgz archive removing to prevent duplicative extraction of a previous configuration. Tested with AMD Geode based board. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
		
			
				
	
	
		
			18 lines
		
	
	
		
			376 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			376 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
# Copyright (C) 2006 OpenWrt.org
 | 
						|
# Copyright (C) 2010 Vertical Communications
 | 
						|
 | 
						|
do_mount_root() {
 | 
						|
	mount_root
 | 
						|
	boot_run_hook preinit_mount_root
 | 
						|
	[ -f /sysupgrade.tgz ] && {
 | 
						|
		echo "- config restore -"
 | 
						|
		cd /
 | 
						|
		tar xzf /sysupgrade.tgz
 | 
						|
		# Prevent configuration corruption on a power loss
 | 
						|
		sync
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main do_mount_root
 |