[git pull] HPFS changes for 6.20

1 view
Skip to first unread message

Mikulas Patocka

unread,
Feb 9, 2026, 12:01:24 PMFeb 9
to Linus Torvalds, linux-...@vger.kernel.org, Tetsuo Handa, syzkaller
Hi Linus

The following changes since commit 18f7fcd5e69a04df57b563360b88be72471d6b62:

Linux 6.19-rc8 (2026-02-01 14:01:13 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-6.20/hpfs-changes

for you to fetch changes up to a4664a2bc61c2abbc772df9139da9dbd2b26dc7f:

hpfs: disable the no-check mode (2026-02-02 18:06:33 +0100)

Please, pull, thanks
Mikulas

----------------------------------------------------------------
- hpfs: disable the no-check mode
-----BEGIN PGP SIGNATURE-----

iIoEABYIADIWIQRnH8MwLyZDhyYfesYTAyx9YGnhbQUCaYoNkhQcbXBhdG9ja2FA
cmVkaGF0LmNvbQAKCRATAyx9YGnhbb//AQCDnRc0RD46vwY6Vq1H1blOeRBwbuak
wnwekMZFHF5bJAD8DKxQHxXDQeuKJrsY/aRn2GjL32JR0od2XCMM4rIiBQg=
=0Gza
-----END PGP SIGNATURE-----

----------------------------------------------------------------
Mikulas Patocka (1):
hpfs: disable the no-check mode

fs/hpfs/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Linus Torvalds

unread,
Feb 9, 2026, 7:37:04 PMFeb 9
to Mikulas Patocka, linux-...@vger.kernel.org, Tetsuo Handa, syzkaller
On Mon, 9 Feb 2026 at 09:01, Mikulas Patocka <mpat...@redhat.com> wrote:
>
> hpfs: disable the no-check mode (2026-02-02 18:06:33 +0100)

This looks like a totally bogus commit.

If "check=none" suddenly means the same as "check=normal", then why
does that "none" thing exist at all?

None of this makes any sense.

Linus

Mikulas Patocka

unread,
Feb 10, 2026, 6:21:35 AMFeb 10
to Linus Torvalds, linux-...@vger.kernel.org, Tetsuo Handa, syzkaller
I wanted to keep the "check=none" option so that I don't break scripts or
/etc/fstab configurations that people may have.

If you don't like it, you can drop it, it's not a big deal. The syzbot
people will have to deal with it in some other way.

Mikulas

Tetsuo Handa

unread,
Feb 10, 2026, 7:50:02 AMFeb 10
to Mikulas Patocka, Linus Torvalds, linux-...@vger.kernel.org, syzkaller
I posted "hpfs: make check=none mount option excludable" because syzbot is not
the only fuzzer. Making it possible to exclude using kernel config option is
beneficial to all fuzzers, and we can check whether the kernel config for fuzz
testing purpose is appropriate.

But if you can accept making check=none to behave as if check=normal, I would
suggest the following change.

fs/hpfs/super.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index 371aa6de8075..18c8ba6e9398 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -615,7 +615,11 @@ static int hpfs_fill_super(struct super_block *s, struct fs_context *fc)
if (sbi->sb_err == 0)
pr_err("Proceeding, but your filesystem could be corrupted if you delete files or directories\n");
}
- if (sbi->sb_chk) {
+ if (!sbi->sb_chk) {
+ sbi->sb_chk = 1;
+ pr_info("check=none was obsoleted. Treating as check=normal.\n");
+ }
+ {
unsigned a;
if (le32_to_cpu(superblock->dir_band_end) - le32_to_cpu(superblock->dir_band_start) + 1 != le32_to_cpu(superblock->n_dir_band) ||
le32_to_cpu(superblock->dir_band_end) < le32_to_cpu(superblock->dir_band_start) || le32_to_cpu(superblock->n_dir_band) > 0x4000) {
@@ -632,8 +636,7 @@ static int hpfs_fill_super(struct super_block *s, struct fs_context *fc)
goto bail4;
}
sbi->sb_dirband_size = a;
- } else
- pr_err("You really don't want any checks? You are crazy...\n");
+ }

/* Load code page table */
if (le32_to_cpu(spareblock->n_code_pages))

Tetsuo Handa

unread,
Feb 10, 2026, 8:25:40 AMFeb 10
to Mikulas Patocka, Linus Torvalds, linux-...@vger.kernel.org, syzkaller
On 2026/02/10 21:49, Tetsuo Handa wrote:
> I posted "hpfs: make check=none mount option excludable" because syzbot is not
> the only fuzzer. Making it possible to exclude using kernel config option is
> beneficial to all fuzzers, and we can check whether the kernel config for fuzz
> testing purpose is appropriate.
>
> But if you can accept making check=none to behave as if check=normal, I would
> suggest the following change.
>

Hmm, since the reconfigure path does not emit "You are crazy..." message,
fuzzers might have already reported bugs after silently modifying
an error=normal mount to error=none behavior...

fs/hpfs/super.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index 371aa6de8075..a6ad9a12f239 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -442,7 +442,8 @@ static int hpfs_reconfigure(struct fs_context *fc)
sbi->sb_uid = ctx->uid; sbi->sb_gid = ctx->gid;
sbi->sb_mode = 0777 & ~ctx->umask;
sbi->sb_lowercase = ctx->lowercase;
- sbi->sb_eas = ctx->eas; sbi->sb_chk = ctx->chk;
+ sbi->sb_eas = ctx->eas;
+ sbi->sb_chk = ctx->chk ? ctx->chk : 1;
sbi->sb_chkdsk = ctx->chkdsk;
sbi->sb_err = ctx->errs; sbi->sb_timeshift = ctx->timeshift;

@@ -615,7 +616,11 @@ static int hpfs_fill_super(struct super_block *s, struct fs_context *fc)
if (sbi->sb_err == 0)
pr_err("Proceeding, but your filesystem could be corrupted if you delete files or directories\n");
}
- if (sbi->sb_chk) {
+ if (!sbi->sb_chk) {
+ sbi->sb_chk = 1;
+ pr_info("check=none was obsoleted. Treating as check=normal.\n");
+ }
+ {
unsigned a;
if (le32_to_cpu(superblock->dir_band_end) - le32_to_cpu(superblock->dir_band_start) + 1 != le32_to_cpu(superblock->n_dir_band) ||
le32_to_cpu(superblock->dir_band_end) < le32_to_cpu(superblock->dir_band_start) || le32_to_cpu(superblock->n_dir_band) > 0x4000) {
@@ -632,8 +637,7 @@ static int hpfs_fill_super(struct super_block *s, struct fs_context *fc)
Reply all
Reply to author
Forward
0 new messages