base-files: add initial support for mounting overlayfs
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 17 Mar 2011 19:09:39 +0000 (19:09 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 17 Mar 2011 19:09:39 +0000 (19:09 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26207 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/lib/firstboot/10_reset_has_mini_fo
package/base-files/files/lib/firstboot/20_has_mini_fo
package/base-files/files/lib/functions/boot.sh

index 125af0f..4e28584 100644 (file)
@@ -3,10 +3,10 @@
 # Copyright (C) 2006-2010 OpenWrt.org
 # Copyright (C) 2010 Vertical Communications
 
-reset_check_for_mini_fo() {
-    if grep -q mini_fo /proc/filesystems; then
+reset_check_for_overlay() {
+    if grep -qE '(mini_fo|overlay)' /proc/filesystems; then
        reset_has_fo=true
     fi
 }
 
-boot_hook_add jffs2reset reset_check_for_mini_fo
+boot_hook_add jffs2reset reset_check_for_overlay
index 257b2b5..8ca6a4f 100644 (file)
@@ -3,11 +3,11 @@
 # Copyright (C) 2006-2010 OpenWrt.org
 # Copyright (C) 2010 Vertical Communications
 
-check_for_mini_fo() {
-    if ! grep -q mini_fo /proc/filesystems; then
+check_for_overlay() {
+    if ! grep -qE '(mini_fo|overlay)' /proc/filesystems; then
        boot_run_hook no_fo
        exit 1
     fi
 }
 
-boot_hook_add switch2jffs check_for_mini_fo
+boot_hook_add switch2jffs check_for_overlay
index a4ec7be..6bdd7a1 100644 (file)
@@ -125,7 +125,9 @@ pivot() { # <new_root> <old_root>
 fopivot() { # <rw_root> <ro_root> <dupe?>
        root=$1
        {
-               if grep -q mini_fo /proc/filesystems; then
+               if grep -q overlay /proc/filesystems; then
+                       mount -t overlayfs -olowerdir=/,upperdir=$1 "overlayfs:$1" /mnt && root=/mnt
+               elif grep -q mini_fo /proc/filesystems; then
                        mount -t mini_fo -o base=/,sto=$1 "mini_fo:$1" /mnt 2>&- && root=/mnt
                else
                        mount --bind / /mnt