From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E0F9331A49 for ; Mon, 15 Dec 2025 13:40:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765806032; cv=none; b=daQ94juAroSdxU/44W8cgXxRF2paHeoGRvzuAUv7GObRTAJ8VH9LWsMu6cpuTOaynglnXOyZsxQOXegOUuIVucamBkxflDjSuoW/G10Lr7dLRCXf2NuGJ5xqHTmAezLIH/TVYElfyD1QIZ4J5eDT0hPi/Seb3FpsPjeHbHwRXxs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765806032; c=relaxed/simple; bh=ovJ0zyP/g9aXNafbNuG+hd9K81V+Lc2R0S5fghONlE8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=t3LsFafn3TABttbT6axeoiFT21QpsNzrwD+SuD3QCLg8fqvVVCz7pVmzB8Xyuu/7fgYZrY9icO6X6B/yG0xc2UDUaIM+Fl/FMwmR2L1ssOy15fqpkNF5TUxNEtJ6jdEEyni+Bc88poixkgIziQfKWGUsMAwx6kfRc/LAuj+/kvk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=AUiRiEQx; arc=none smtp.client-ip=209.85.216.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AUiRiEQx" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-34ca40c1213so435709a91.0 for ; Mon, 15 Dec 2025 05:40:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765806030; x=1766410830; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LaqS3RSpbqvlmpnasR8sVbhgvyTt7K1QiH94F/Yk+ag=; b=AUiRiEQxLuCnCn4UvC6L0IGf4UaG14j0GjMP0840DN3Feo3g+wSu8roOSpybYlZYK2 RS4lyRJe2T4PK+vpHXMKORukcVLOaD7Aw/AdE/KO/ihSPMlwtVrJGjpg3lSUKmOZ0MTM J9UNIsj7/5cg9YH6ihQ5MJmnqfLgQmfLl+OZ6EG10+zbYwzKsd0rFVM/K6M090Jh5unq lX/02gAim4mCxLV/NphAIhGYmqKoY6qJO/1S0Z8nG0rTrt1ZeqG7SpYTjYmbnCcOXp4m VzveZmKcHDA5gCbrBGvNGsYcDbus4sSDlwnk4eTrxsrnnqMd5loWmqBWo/y4gDBlmte7 8hVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765806030; x=1766410830; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LaqS3RSpbqvlmpnasR8sVbhgvyTt7K1QiH94F/Yk+ag=; b=BkBggzKJg5vzMKFIS7lyDankB+inv/JB0lajSIutxuAtkwNfO5mxPVyrqKBLgV3I5x aeBrD8B0Dints4dlWactNqbya6wzcGZ6OtYZ7TUzYW2vdysb8W3deoT5DEhnP1tEq8dj 8EgiO/1zngHEBz8b4khPVsttZDoS02DlJ9LH0mqIX2QbDI/3JGJSEkwZGlYq1JOTcaM4 oRsxNoT7QnwWKBGxw5wKrZT0yg4DPSa/GmTLry8/VEN44OhuFybQX2FntB3nGnzvHiNN mPrrhsJItpfXBa20ye+uFYoa6dZUrBob4NcEzmX7kXrEzq70pmlcW049/mFtI7SuDEdK jfUA== X-Forwarded-Encrypted: i=1; AJvYcCUGifG5X9T6+AxzDbgTukkqqYS9UVI1ZrVbU83uPpOAonB9Y7uFl2o91JDPx8yJoMFxtJqxaEBA4AHils0=@vger.kernel.org X-Gm-Message-State: AOJu0Yzi+znQh1VZ7voCFGKbJ+0dGlvPX1A0I3cddGupC1HEvuspci8F EaO6A1Yh5ktZ71ei9bbfOKszC9oDqT3a8oDzxCNxinRWPo9+hSGP/9gM X-Gm-Gg: AY/fxX7XUDDkkNgVVd6xmtJIpP4dF9nQPLjRehOQglyrE5xl1OvphamZdE+nN18KJO0 B5TSMuquL5syLiJ2OhEg7lXm9fhg5dhfCqxlwM0dNawzgAoC4RVDGWA2n/7SgW3MCc7r6imqxNs NtRjL1QGG2g0wa+KM/IVwcLWtdQwikb1Nr7qWxqbDVw+YaJ7cEJ435qs5MGGfRdC/eqvnx3bZP6 RDqIyzpIhZBvx2bathOJS7jnIVAVijqS78wjxLvENUe6SbN+ub/uOLt0e+u/qUN1oi3zrk6Em78 GLtrUU5WElFfzzrnvk4aiF7Jz85LorGLa21qWQJRDSpMB+qxf2lht1Ji22giFuqrXRAWpRpHNZT PpGtCB0qb2E8kLE4cfqbkmChW2Z+1Kgr/xUksuROdMlAmAsTTnoOb2em4y6PZXgiqGZo0wIWq2v nYjkDhyNVt X-Google-Smtp-Source: AGHT+IH2HoaWsKGvvyPNwy/LERBF8rplt9/OpANYZBDCCXD3Qj0LMKNYm+cH2U/UH7qnjgbQwYK/ig== X-Received: by 2002:a17:90b:3949:b0:32e:a10b:ce33 with SMTP id 98e67ed59e1d1-34abe478148mr9019359a91.21.1765806029815; Mon, 15 Dec 2025 05:40:29 -0800 (PST) Received: from fly.nay.do ([49.37.35.199]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34abe3a21d1sm9259498a91.4.2025.12.15.05.40.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 05:40:29 -0800 (PST) From: Ankan Biswas To: stable@vger.kernel.org Cc: gregkh@linuxfoundation.org, sashal@kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org, khalid@kernel.org, david.hunter.linux@gmail.com, linux-kernel-mentees@vger.kernel.org, Gabriel Krisman Bertazi , Ankan Biswas Subject: [PATCH 6.6.y] ext4: fix error message when rejecting the default hash Date: Mon, 15 Dec 2025 19:09:57 +0530 Message-ID: <20251215133957.4236-1-spyjetfayed@gmail.com> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Gabriel Krisman Bertazi [ Upstream commit a2187431c395cdfbf144e3536f25468c64fc7cfa ] Commit 985b67cd8639 ("ext4: filesystems without casefold feature cannot be mounted with siphash") properly rejects volumes where s_def_hash_version is set to DX_HASH_SIPHASH, but the check and the error message should not look into casefold setup - a filesystem should never have DX_HASH_SIPHASH as the default hash. Fix it and, since we are there, move the check to ext4_hash_info_init. Fixes:985b67cd8639 ("ext4: filesystems without casefold feature cannot be mounted with siphash") Signed-off-by: Gabriel Krisman Bertazi Link: https://patch.msgid.link/87jzg1en6j.fsf_-_@mailhost.krisman.be Signed-off-by: Theodore Ts'o [ The commit a2187431c395 intended to remove the if-block which was used for an old SIPHASH rejection check. ] Signed-off-by: Ankan Biswas --- fs/ext4/ext4.h | 1 + fs/ext4/super.c | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 7afce7b744c0..85ba12a48f26 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -2459,6 +2459,7 @@ static inline __le16 ext4_rec_len_to_disk(unsigned len, unsigned blocksize) #define DX_HASH_HALF_MD4_UNSIGNED 4 #define DX_HASH_TEA_UNSIGNED 5 #define DX_HASH_SIPHASH 6 +#define DX_HASH_LAST DX_HASH_SIPHASH static inline u32 ext4_chksum(struct ext4_sb_info *sbi, u32 crc, const void *address, unsigned int length) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 16a6c249580e..613f2bac439d 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -5138,16 +5138,27 @@ static int ext4_load_super(struct super_block *sb, ext4_fsblk_t *lsb, return ret; } -static void ext4_hash_info_init(struct super_block *sb) +static int ext4_hash_info_init(struct super_block *sb) { struct ext4_sb_info *sbi = EXT4_SB(sb); struct ext4_super_block *es = sbi->s_es; unsigned int i; + sbi->s_def_hash_version = es->s_def_hash_version; + + if (sbi->s_def_hash_version > DX_HASH_LAST) { + ext4_msg(sb, KERN_ERR, + "Invalid default hash set in the superblock"); + return -EINVAL; + } else if (sbi->s_def_hash_version == DX_HASH_SIPHASH) { + ext4_msg(sb, KERN_ERR, + "SIPHASH is not a valid default hash value"); + return -EINVAL; + } + for (i = 0; i < 4; i++) sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]); - sbi->s_def_hash_version = es->s_def_hash_version; if (ext4_has_feature_dir_index(sb)) { i = le32_to_cpu(es->s_flags); if (i & EXT2_FLAGS_UNSIGNED_HASH) @@ -5165,6 +5176,7 @@ static void ext4_hash_info_init(struct super_block *sb) #endif } } + return 0; } static int ext4_block_group_meta_init(struct super_block *sb, int silent) @@ -5309,7 +5321,9 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb) if (err) goto failed_mount; - ext4_hash_info_init(sb); + err = ext4_hash_info_init(sb); + if (err) + goto failed_mount; err = ext4_handle_clustersize(sb); if (err) -- 2.52.0