base-files: add initial support for mounting overlayfs

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26207 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2011-03-17 19:09:39 +00:00
parent a99ab5f02e
commit d5e202e289
3 changed files with 9 additions and 7 deletions

View File

@ -3,10 +3,10 @@
# Copyright (C) 2006-2010 OpenWrt.org # Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications # Copyright (C) 2010 Vertical Communications
reset_check_for_mini_fo() { reset_check_for_overlay() {
if grep -q mini_fo /proc/filesystems; then if grep -qE '(mini_fo|overlay)' /proc/filesystems; then
reset_has_fo=true reset_has_fo=true
fi fi
} }
boot_hook_add jffs2reset reset_check_for_mini_fo boot_hook_add jffs2reset reset_check_for_overlay

View File

@ -3,11 +3,11 @@
# Copyright (C) 2006-2010 OpenWrt.org # Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications # Copyright (C) 2010 Vertical Communications
check_for_mini_fo() { check_for_overlay() {
if ! grep -q mini_fo /proc/filesystems; then if ! grep -qE '(mini_fo|overlay)' /proc/filesystems; then
boot_run_hook no_fo boot_run_hook no_fo
exit 1 exit 1
fi fi
} }
boot_hook_add switch2jffs check_for_mini_fo boot_hook_add switch2jffs check_for_overlay

View File

@ -125,7 +125,9 @@ pivot() { # <new_root> <old_root>
fopivot() { # <rw_root> <ro_root> <dupe?> fopivot() { # <rw_root> <ro_root> <dupe?>
root=$1 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 mount -t mini_fo -o base=/,sto=$1 "mini_fo:$1" /mnt 2>&- && root=/mnt
else else
mount --bind / /mnt mount --bind / /mnt