base-files: keep sysupgrade.tgz until /etc/init.d/done has been called
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 22 Mar 2015 15:11:20 +0000 (15:11 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 22 Mar 2015 15:11:20 +0000 (15:11 +0000)
This makes interrupted boots after sysupgrade more reliable

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44941 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/etc/init.d/done
package/base-files/files/lib/preinit/80_mount_root

index b254aff..ed75e40 100755 (executable)
@@ -4,6 +4,7 @@
 START=95
 boot() {
        [ -d /tmp/root ] && mount_root done
+       rm -f /sysupgrade.tgz
 
        # process user commands
        [ -f /etc/rc.local ] && {
index 0292d82..f3fe788 100644 (file)
@@ -8,10 +8,7 @@ do_mount_root() {
        [ -f /sysupgrade.tgz ] && {
                echo "- config restore -"
                cd /
-               mv sysupgrade.tgz /tmp
-               tar xzf /tmp/sysupgrade.tgz
-               rm -f /tmp/sysupgrade.tgz
-               sync
+               tar xzf /sysupgrade.tgz
        }
 }