ipq40xx: fix openmesh sysupgrade with tar content out of order
[openwrt/openwrt.git] / target / linux / ipq40xx / base-files / lib / upgrade / openmesh.sh
index f7aed7c9b6452baeb5fb7de7ee6c0546e814ee1d..7cc60c00e9c14fa27404dff6beda33c6a5266996 100644 (file)
@@ -76,9 +76,9 @@ platform_do_upgrade_openmesh() {
        # take care of restoring a saved config
        [ "$SAVE_CONFIG" -eq 1 ] && restore_backup="${MTD_CONFIG_ARGS} -j ${CONF_TAR}"
 
-       # write concatinated kernel + rootfs to flash
-       tar xf $tar_file ${board_dir}/kernel ${board_dir}/root -O | \
-               mtd $restore_backup write - $PART_NAME
+       mtd -q erase inactive
+       tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME
+       tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME
 
        # prepare new u-boot env
        if [ "$next_boot_part" = "1" ]; then