base-files: fix ramoverlay function with kernels 3.18+
[openwrt/openwrt.git] / package / base-files / files / lib / functions / preinit.sh
index db1f298c8bd25c9cb21ac66df1cddea79118ad55..57862a11f352cefe048063e7bcaa475776c397d5 100644 (file)
@@ -75,13 +75,14 @@ pivot() { # <new_root> <old_root>
        }
 }
 
-fopivot() { # <rw_root> <ro_root> <dupe?>
-       /bin/mount -o noatime,lowerdir=/,upperdir=$1 -t overlayfs "overlayfs:$1" /mnt
-       pivot /mnt $2
+fopivot() { # <rw_root> <work_dir> <ro_root> <dupe?>
+       /bin/mount -o noatime,lowerdir=/,upperdir=$1,workdir=$2 -t overlay "overlayfs:$1" /mnt
+       pivot /mnt $3
 }
 
 ramoverlay() {
        mkdir -p /tmp/root
        /bin/mount -t tmpfs -o noatime,mode=0755 root /tmp/root
-       fopivot /tmp/root /rom 1
+       mkdir -p /tmp/root/root /tmp/root/work
+       fopivot /tmp/root/root /tmp/root/work /rom 1
 }