In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix nilfsemptydir() misjudgment and long loop on I/O errors
The error handling in nilfsemptydir() when a directory folio/page read fails is incorrect, as in the old ext2 implementation, and if the folio/page cannot be read or nilfscheckfolio() fails, it will falsely determine the directory as empty and corrupt the file system.
In addition, since nilfsemptydir() does not immediately return on a failed folio/page read, but continues to loop, this can cause a long loop with I/O if i_size of the directory's inode is also corrupted, causing the log writer thread to wait and hang, as reported by syzbot.
Fix these issues by making nilfsemptydir() immediately return a false value (0) if it fails to get a directory folio/page.