regression: 4.13 cannot follow symlinks on some ext3 fs

From: Andi Kleen
Date: Thu Nov 23 2017 - 15:33:40 EST



Hi,

I have an older qemu VM image that i sometimes use for testing. It
stopped booting with 4.13-4.14 because it couldn't run init.
It uses ext3 for the root file system.

I instrumented the code and found that it failed to follow the
/lib/ld-linux.so.2 -> ld-2.3.6.so symlink for init's ELF interpreter.

I bisected it to down to

commit 407cd7fb83c0ebabb490190e673d8c71ee7df97e (refs/bisect/bad)
Author: Tahsin Erdogan <tahsin@xxxxxxxxxx>
Date: Tue Jul 4 00:11:21 2017 -0400

ext4: change fast symlink test to not rely on i_blocks

when I revert this commit 4.14 my VM runs fine again.

Dump of the inode in debugfs:

debugfs: Inode: 1767 Type: symlink Mode: 0777 Flags: 0x0
Generation: 0
User: 0 Group: 0 Size: 11
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x45ad7ba0 -- Wed Jan 17 01:28:00 2007
atime: 0x5a164be5 -- Thu Nov 23 04:17:41 2017
mtime: 0x45ad7ba0 -- Wed Jan 17 01:28:00 2007
BLOCKS:
(0):11006
TOTAL: 1

-Andi