On Fri, Apr 11, 2025 at 11:31:24AM +0100, Mark Brown wrote: > On Mon, Apr 07, 2025 at 11:54:15AM +0200, Christian Brauner wrote: > > This allows the VFS to not trip over anonymous inodes and we can add > > asserts based on the mode into the vfs. When we report it to userspace > > we can simply hide the mode to avoid regressions. I've audited all > > direct callers of alloc_anon_inode() and only secretmen overrides i_mode > > and i_op inode operations but it already uses a regular file. > > We've been seeing failures in LTP's readadead01 in -next on arm64 > platforms: This fscking readhead garbage is driving me insane. Ok, readahead skipped anonymous inodes because it's checking whether it is a regular file or not. We now make them regular files internally. Should be fixed in -next tomorrow. > > 4601 07:43:36.192033 tst_test.c:1900: TINFO: LTP version: 20250130-1-g60fe84aaf > 4602 07:43:36.201811 tst_test.c:1904: TINFO: Tested kernel: 6.15.0-rc1-next-20250410 #1 SMP PREEMPT Thu Apr 10 06:18:38 UTC 2025 aarch64 > 4603 07:43:36.208400 tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz' > 4604 07:43:36.218393 tst_test.c:1722: TINFO: Overall timeout per run is 0h 01m 30s > 4605 07:43:36.223886 readahead01.c:36: TPASS: readahead() with fd = -1 : EBADF (9) > 4606 07:43:36.229370 readahead01.c:43: TPASS: readahead() with invalid fd : EBADF (9) > 4607 07:43:36.234998 readahead01.c:64: TPASS: readahead() on O_PATH file : EBADF (9) > 4608 07:43:36.240527 readahead01.c:64: TPASS: readahead() on directory : EINVAL (22) > 4609 07:43:36.246118 readahead01.c:64: TPASS: readahead() on /dev/zero : EINVAL (22) > 4610 07:43:36.251530 readahead01.c:64: TPASS: readahead() on pipe read end : EINVAL (22) > 4611 07:43:36.260007 readahead01.c:64: TPASS: readahead() on pipe write end : EBADF (9) > 4612 07:43:36.265581 readahead01.c:64: TPASS: readahead() on unix socket : EINVAL (22) > 4613 07:43:36.270928 readahead01.c:64: TPASS: readahead() on inet socket : EINVAL (22) > 4614 07:43:36.276754 readahead01.c:64: TFAIL: readahead() on epoll succeeded > 4615 07:43:36.279460 readahead01.c:64: TFAIL: readahead() on eventfd succeeded > 4616 07:43:36.285053 readahead01.c:64: TFAIL: readahead() on signalfd succeeded > 4617 07:43:36.290504 readahead01.c:64: TFAIL: readahead() on timerfd succeeded > 4618 07:43:36.296220 readahead01.c:64: TFAIL: readahead() on fanotify succeeded > 4619 07:43:36.301605 readahead01.c:64: TFAIL: readahead() on inotify succeeded > 4620 07:43:36.307327 tst_fd.c:170: TCONF: Skipping userfaultfd: ENOSYS (38) > 4621 07:43:36.312806 readahead01.c:64: TFAIL: readahead() on perf event succeeded > 4622 07:43:36.318534 readahead01.c:64: TFAIL: readahead() on io uring succeeded > 4623 07:43:36.321511 readahead01.c:64: TFAIL: readahead() on bpf map succeeded > 4624 07:43:36.325711 readahead01.c:64: TFAIL: readahead() on fsopen succeeded > 4625 07:43:36.331073 readahead01.c:64: TFAIL: readahead() on fspick succeeded > 4626 07:43:36.336608 readahead01.c:64: TPASS: readahead() on open_tree : EBADF (9) > 4627 07:43:36.336903 > 4628 07:43:36.339354 Summary: > 4629 07:43:36.339641 passed 10 > 4630 07:43:36.342132 failed 11 > 4631 07:43:36.342420 broken 0 > 4632 07:43:36.342648 skipped 1 > 4633 07:43:36.344768 warnings 0 > > which bisected down to this patch, which is cfd86ef7e8e7b9e01 in -next: > > git bisect start > # status: waiting for both good and bad commits > # bad: [29e7bf01ed8033c9a14ed0dc990dfe2736dbcd18] Add linux-next specific files for 20250410 > git bisect bad 29e7bf01ed8033c9a14ed0dc990dfe2736dbcd18 > # status: waiting for good commit(s), bad commit known > # good: [1785a3a7b96a52fae13880a5ba880a5f473eacb1] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git > git bisect good 1785a3a7b96a52fae13880a5ba880a5f473eacb1 > # bad: [793874436825ebf3dfeeac34b75682c234cf61ef] Merge branch 'for-linux-next' of https://gitlab.freedesktop.org/drm/misc/kernel.git > git bisect bad 793874436825ebf3dfeeac34b75682c234cf61ef > # bad: [f8b5c1664191e453611f77d36ba21b09bc468a2d] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git > git bisect bad f8b5c1664191e453611f77d36ba21b09bc468a2d > # good: [100ac6e209fce471f3ff4d4e92f9d192fcfa7637] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git > git bisect good 100ac6e209fce471f3ff4d4e92f9d192fcfa7637 > # bad: [143ced925e31fe24e820866403276492f05efaa5] Merge branch 'vfs.all' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git > git bisect bad 143ced925e31fe24e820866403276492f05efaa5 > # good: [b087fb728fdda75e1d3e83aa542d3aa025ac6c4a] Merge branch 'nfsd-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux > git bisect good b087fb728fdda75e1d3e83aa542d3aa025ac6c4a > # good: [7ee85aeee98e85f72a663672267180218d1510db] Merge branch 'vfs-6.16.super' into vfs.all > git bisect good 7ee85aeee98e85f72a663672267180218d1510db > # bad: [d57e6ea6671b1ef0fcb09ccc52952c8a6bfb83c8] Merge branch 'vfs-6.16.misc' into vfs.all > git bisect bad d57e6ea6671b1ef0fcb09ccc52952c8a6bfb83c8 > # bad: [25a6cc9a630b4b1b783903b23a3a97c5bf16bf41] selftests/filesystems: add open() test for anonymous inodes > git bisect bad 25a6cc9a630b4b1b783903b23a3a97c5bf16bf41 > # bad: [c83b9024966090fe0df92aab16975b8d00089e1f] pidfs: use anon_inode_setattr() > git bisect bad c83b9024966090fe0df92aab16975b8d00089e1f > # bad: [cfd86ef7e8e7b9e015707e46479a6b1de141eed0] anon_inode: use a proper mode internally > git bisect bad cfd86ef7e8e7b9e015707e46479a6b1de141eed0 > # good: [418556fa576ebbd644c7258a97b33203956ea232] docs: initramfs: update compression and mtime descriptions > git bisect good 418556fa576ebbd644c7258a97b33203956ea232 > # first bad commit: [cfd86ef7e8e7b9e015707e46479a6b1de141eed0] anon_inode: use a proper mode internally