]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: filesystems without casefold feature cannot be mounted with siphash
authorLizhi Xu <lizhi.xu@windriver.com>
Thu, 8 Jan 2026 15:04:27 +0000 (12:04 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:10:12 +0000 (13:10 +0100)
commit 985b67cd86392310d9e9326de941c22fc9340eec upstream.

When mounting the ext4 filesystem, if the default hash version is set to
DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.

Reported-by: syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com
Signed-off-by: Lizhi Xu <lizhi.xu@windriver.com>
Link: https://patch.msgid.link/20240605012335.44086-1-lizhi.xu@windriver.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
[cascardo: small conflict fixup]
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/super.c

index 65fd42a2105dfe060841436fcef17256cd596c29..9a061c75030546bfc6839ea7a505db6dba79e0ae 100644 (file)
@@ -3191,6 +3191,14 @@ int ext4_feature_set_ok(struct super_block *sb, int readonly)
        }
 #endif
 
+       if (EXT4_SB(sb)->s_es->s_def_hash_version == DX_HASH_SIPHASH &&
+           !ext4_has_feature_casefold(sb)) {
+               ext4_msg(sb, KERN_ERR,
+                        "Filesystem without casefold feature cannot be "
+                        "mounted with siphash");
+               return 0;
+       }
+
        if (readonly)
                return 1;