Description of problem: The kernel is reporting "No space for directory leaf checksum. Please run e2fsck -D." for multiple filesystems, but 'e2fsck -D' is unable to correct the error. As a result, the contents problematic directory is completely inaccessible; no file can be opened or removed. The end result is the data loss of all files in the directory. Version-Release number of selected component (if applicable): e2fsprogs-1.45.6-5.el8.x86_64 more recent Fedora e2fsprogs-1.46.5-3.fc37 is also unable to correct How reproducible: Unknown, however the customer has 4 filesystems on one system which are all reporting the error. Steps to Reproduce: unknown Actual results: 'e2fsck -D' is unable to correct the error Expected results: 'e2fsck -D' corrects the error, as described in the kernel error message Additional info: All of the customer's filesystems have a blocksize of 1024 bytes, which seems likely to be contributing to the issue.
listing the problematic directory or attempting to open or remove entries in the directory results in an EBADMSG error: ls: cannot access 'lastseen/by_mac/AP02cb72f947.csv': Bad message # rm AP02cb72f947.csv rm: cannot remove 'AP02cb72f947.csv': Bad message
Note: the e2fsck error when attempting to correct the issue is: Failed to optimize directory /lastseen/by_mac (30941743): Directory block does not have space for checksum
I can confirm that disabling checksums for the filesystem will make the filesystem usable again: # fsck.ext4 -f misc.e2i # tune2fs -ff -O^metadata_csum misc.e2i Each step takes ages, but it works. I also attempted to replicate the issue on a scratch filesystem, using the filenames of the entries in the problematic filesystem, but was unable to recreate the error.