block-mount: add a delay between sto pand start in fstab init restart action, fixes...
[openwrt.git] / package / block-mount / files / fstab.init
index a3e0338..4f1f6fb 100644 (file)
@@ -8,6 +8,31 @@
 
 START=20
 
+EXTRA_COMMANDS="overlay_enable whole_root_enable"
+EXTRA_HELP="        overlay_enable    Reenable overlay rootfs. (After you fix it).
+        whole_root_enable Reenable whole-disk rootfs.  (After you fix it)."
+
+rootfs_enable() {
+       local extroot_type="$1"
+               
+       if [ ! -d /tmp/${extroot_type}-disabled ]; then
+               echo "No disabled ${extroot_type} present (/tmp/${extroot_type}-disabled).  Can't renable."
+               exit 1
+       fi
+       
+       rm -f /tmp/${extroot_type}-disabled/.extroot.md5sum
+       rm -f /tmp/${extroot_type}-disabled/etc/extroot.md5sum
+       echo "Please reboot router to complete re-enabling external rootfs."
+}
+
+overlay_enable() {
+       rootfs_enable overlay
+}
+
+whole_root_enable() {
+       rootfs_enable whole_root
+}
+
 do_mount() {
        local cfg="$1"
        config_mount_by_section "$cfg"
@@ -41,13 +66,11 @@ start() {
 
        config_load fstab
        mkdir -p /var/lock
-       lock -w /var/lock/fstab.lck && {
-               lock /var/lock/fstab.lck
-               [ -e /tmp/fstab ] || { 
-                       echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
-               }
-               lock -u /var/lock/fstab.lck
+       lock /var/lock/fstab.lck
+       [ -e /tmp/fstab ] || {
+               echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
        }
+       lock -u /var/lock/fstab.lck
        config_foreach do_swapon swap
        config_foreach do_mount mount
        config_foreach do_swapon swap  # do swap a second time so that swap on filesystems is enabled
@@ -62,4 +85,8 @@ stop() {
        swapoff -a
 }
 
-
+restart() {
+       stop
+       sleep 1
+       start
+}