]> 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:03:49 +0000 (12:03 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 11 Jan 2026 14:22:33 +0000 (15:22 +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 aae1b17f22ad3334a78adeeb9aa7617c6321e755..37acda7b3a2713754f96aa671e45d9c8497fedf1 100644 (file)
@@ -3632,6 +3632,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;