[lvc-project] [PATCH 6.1.y 0/3] ext4: Fix warning related to siphash and ext4 filesystem mounting

Vasiliy Kovalev kovalev at altlinux.org
Mon Nov 18 13:20:47 MSK 2024


Found by syzbot (https://syzkaller.appspot.com/bug?extid=9177d065333561cd6fd0):

EXT4-fs (loop0): encrypted files will use data=ordered instead of data journaling mode
EXT4-fs (loop0): 1 truncate cleaned up
EXT4-fs (loop0): mounted filesystem without journal. Quota mode: none.
fscrypt: AES-256-CTS-CBC using implementation "cts-cbc-aes-aesni"
------------[ cut here ]------------
WARNING: CPU: 1 PID: 4245 at fs/crypto/fname.c:567 fscrypt_fname_siphash+0xb9/0xf0
Modules linked in:
CPU: 1 PID: 4245 Comm: syz-executor375 Not tainted 6.1.116-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
RIP: 0010:fscrypt_fname_siphash+0xb9/0xf0 fs/crypto/fname.c:567
Call Trace:
 <TASK>
 __ext4fs_dirhash+0xdd2/0x14c0 fs/ext4/hash.c:268
 ext4fs_dirhash+0x1b8/0x320 fs/ext4/hash.c:322
 htree_dirblock_to_tree+0x723/0x10d0 fs/ext4/namei.c:1125
 ext4_htree_fill_tree+0x73d/0x13f0 fs/ext4/namei.c:1220
 ext4_dx_readdir fs/ext4/dir.c:605 [inline]
 ext4_readdir+0x2e87/0x3880 fs/ext4/dir.c:142
 iterate_dir+0x224/0x560
 __do_sys_getdents64 fs/readdir.c:369 [inline]
 __se_sys_getdents64+0x209/0x4f0 fs/readdir.c:354
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81
 </TASK>

These patches address a warning encountered when mounting ext4 filesystems
with the default hash version set to SIPHASH while the casefold feature is not
enabled. The warning occurs due to incorrect error handling and setup of the
default hash version.

[PATCH 1/3 ] ext4: factor out ext4_hash_info_init()
Simplifies the ext4 filesystem setup by factoring out the ext4_hash_info_init
function, with no functional change.

[PATCH 2/3] ext4: filesystems without casefold feature cannot be mounted with siphash
Ensures that ext4 filesystems with the default hash set to SIPHASH cannot be
mounted if the casefold feature is not enabled.

[PATCH 3/3] ext4: fix error message when rejecting the default hash
Corrects the error message logic for rejecting filesystems with the default
SIPHASH hash version, ensuring the error message doesn't incorrectly
reference the casefold setup. Also moves the check to ext4_hash_info_init
to ensure consistency.




More information about the lvc-project mailing list