[REGRESSION 4.9-rc2] "c83ed4c - ubifs: Abort readdir upon error" breaks mount

From: Ralph Sennhauser
Date: Fri Oct 28 2016 - 05:37:17 EST


Dear Richard, dear list

When testing 4.9-rc2 the device wouldn't boot, as it turns out commit
c83ed4c9dbb358b9e7707486e167e940d48bfeed prevent's me mounting root.


The relevant portion of init in the initramfs:

modprobe ubi mtd=$(get_mtd_from_root_arg) block=0,0 || rescue_shell "ubi"
modprobe ubifs || rescue_shell "ubifs"
sleep 1

mount -o ro -t squashfs /dev/ubiblock0_0 /rom || rescue_shell "mount rootfs"
mount -o rw,noatime -t ubifs /dev/ubi0_1 /overlay || rescue_shell "mount rootfs_data"

mkdir -p /overlay/upper || rescue_shell "mkdir upper"
mkdir -p /overlay/work || rescue_shell "mkdir work"

mount -o rw,noatime,lowerdir=/rom,upperdir=/overlay/upper,workdir=/overlay/work \
-t overlay overlay /newroot || rescue_shell "mount overlay"


The corresponding output:

[ 1.396152] ubi0: attaching mtd5
[ 1.407127] random: fast init done
[ 1.471770] ubi0: scanning is finished
[ 1.491499] ubi0: volume 1 ("rootfs_data") re-sized from 9 to 111 LEBs
[ 1.498325] ubi0: attached mtd5 (name "rootfs1", size 34 MiB)
[ 1.504106] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 1.511007] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[ 1.517826] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 1.524819] ubi0: good PEBs: 272, bad PEBs: 0, corrupted PEBs: 0
[ 1.530848] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
[ 1.538102] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1823239451
[ 1.547275] ubi0: available PEBs: 0, total reserved PEBs: 272, PEBs reserved for bad PEB handling: 20
[ 1.556613] ubi0: background thread "ubi_bgt0d" started, PID 575
[ 1.562933] block ubiblock0_0: created from ubi0:0(rootfs)
[ 2.588027] UBIFS (ubi0:1): default file-system created
[ 2.593689] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 586
[ 2.626943] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[ 2.634816] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 2.644781] UBIFS (ubi0:1): FS size: 12824576 bytes (12 MiB, 101 LEBs), journal size 1015809 bytes (0 MiB, 6 LEBs)
[ 2.655175] UBIFS (ubi0:1): reserved for root: 605735 bytes (591 KiB)
[ 2.661646] UBIFS (ubi0:1): media format: w4/r0 (latest is w4/r0), UUID FC75053C-E958-4BBC-BD2B-CFCD72BD47F6, small LPT model
mount: mounting overlay on /newroot failed: No such file or directory
Error in /init: mount overlay
-install: applet not found


BusyBox v1.25.1 () built-in shell (ash)

sh: can't access tty; job control turned off
#


The device is a Linksys WRT1900ACS (Shelby), for a basically identical device
see ./arch/arm/boot/dts/armada-385-linksys-cobra.dts


Regards
Ralph