uvol: clean up paths and fix delayed startup
authorDaniel Golle <daniel@makrotopia.org>
Fri, 18 Feb 2022 03:05:25 +0000 (03:05 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Fri, 18 Feb 2022 03:09:06 +0000 (03:09 +0000)
 * Winchester discs can take a long time to spin up which results in
   blockd also taking a while to complete to start.

 * Make sure uvol only gets started once blockd is ready.

 * Clean up paths (use '/tmp/run/uvol' everywhere instead of relying on
   the '/var' -> '/tmp' symlink)

 * Create 'apk' folder when initializing .meta volume.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
utils/uvol/files/common.sh
utils/uvol/files/uvol.defaults
utils/uvol/files/uvol.init

index 8306477720f3cc3f7283988435097874f1882d3d..eee486c532a3da3a4ab6d68b7e87477c15c9b0ba 100644 (file)
@@ -12,7 +12,7 @@ uvol_uci_add() {
        local devname="$2"
        local mode="$3"
        local autofs=0
-       local target="/var/run/uvol/$volname"
+       local target="/tmp/run/uvol/$volname"
        local uuid uciname
 
        [ "$mode" = "ro" ] && autofs=1
@@ -24,7 +24,7 @@ uvol_uci_add() {
 
        case "$uciname" in
                "_meta")
-                       target="/var/run/uvol/.meta"
+                       target="/tmp/run/uvol/.meta"
                        ;;
                "_"*)
                        return 1
index e71135f7a85553cb88feaa628bc0be932c25b9af..43c971154ae782e6761b45065b7a6f6dd4b09027 100644 (file)
@@ -12,6 +12,8 @@ uvol_init() {
        [ "$metasz" -gt "$freesz" ] && return
        uvol create .meta "$metasz" rw
        uvol up .meta
+       grep -q "uvol/.meta" /proc/mounts || return
+       mkdir -p "/var/run/uvol/.meta/apk"
 }
 
 uci -q get fstab.@uvol[0].initialized >/dev/null || uvol_init
index 1f6e2aac0800592ffcdf71ea3cb31e15e3e3051a..98216214fea00900f1df2d51b5c32d98e9e001c6 100644 (file)
@@ -13,8 +13,7 @@ start_service() {
 }
 
 boot() {
-       __BOOT_UVOL=1
-       start
+       __BOOT_UVOL=1 start
 }
 
 service_triggers() {