base-files: fix ramoverlay function with kernels 3.18+
authorFelix Fietkau <nbd@openwrt.org>
Mon, 21 Sep 2015 17:41:07 +0000 (17:41 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 21 Sep 2015 17:41:07 +0000 (17:41 +0000)
Even though there are not many users left within the OpenWrt tree it seems
this function broke during the kernel 3.18 transition.

Fix it by providing a workdir as required by overlayfs.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 47015

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
 }