X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7bc978b32b012346bad19ee8f1481a1e63a33d37..61ba94a1d19af33d33408d43cbf54a7c7784bfbc:/package/block-mount/files/mount.sh?ds=sidebyside

diff --git a/package/block-mount/files/mount.sh b/package/block-mount/files/mount.sh
index db0fbad1a..e96174ce9 100644
--- a/package/block-mount/files/mount.sh
+++ b/package/block-mount/files/mount.sh
@@ -5,8 +5,8 @@
 #
 
 
-. /lib/functions/block.sh
-. /lib/functions/fsck.sh
+pi_include /lib/functions/block.sh
+pi_include /lib/functions/fsck.sh
 
 config_mount_by_section() {
 	local cfg="$1"
@@ -31,16 +31,27 @@ config_mount_by_section() {
 		
 		found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
 		if [ -n "$found_device" ]; then
-			if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
+			if [ "$find_rootfs" != "1" ] || ( [ "$is_rootfs" -eq 1 ] || [ "$target" = "/" ] || [ "$target" = "/overlay" ] ); then
 				[ "$enabled_fsck" -eq 1 ] && {
 					grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
 						libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
 					}
 				}								
 	
-				[ "$is_rootfs" -eq 1 ] && [ "$find_rootfs" -eq 1 ] && {
+				if [ "$find_rootfs" = "1" ]; then
+				    if [ "$is_rootfs" -eq 1 ]; then
 					target=/overlay
-				}
+				    elif [ "$target" = "/" ]; then
+					target=/rom
+				    fi
+				else
+				    if [ "$is_rootfs" -eq 1 ] || [ "$target" = "/overlay" ]; then
+					target=/tmp/overlay-disabled
+				    elif [ "$target" = "/" ] || [ "$target" = "/rom" ]; then
+					target="/tmp/whole_root-disabled"
+				    fi
+				fi
+				
 				config_create_mount_fstab_entry "$found_device" "$target" "$fstype" "$options" "$enabled" 
 				grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
 					[ "$enabled" -eq 1 ] && mkdir -p "$target" && mount "$target" 2>&1 | tee /proc/self/fd/2 | logger -t 'fstab'
@@ -48,8 +59,13 @@ config_mount_by_section() {
 				
 			fi
 		fi
-		[ "$is_rootfs" -eq 1 ] && [ "$find_rootfs" -eq 1 ] && {
+		[ "$find_rootfs" = "1" ] && {
+		    [ "$target" = "/overlay" ] && {
+			rootfs_found=1
+		    }
+		    [ "$target" = "/rom" ] && {
 			rootfs_found=1
+		    }
 		}
 		return 0	
 	}