hfs/hfsplus updates for v7.0

- hfsplus: avoid double unload_nls() on mount failure
 - hfsplus: fix warning issue in inode.c
 - hfsplus: fix generic/062 xfstests failure
 - hfsplus: fix generic/037 xfstests failure
 - hfsplus: pretend special inodes as regular files
 - hfsplus: return error when node already exists in hfs_bnode_create
 - hfs: Replace BUG_ON with error handling for CNID count checks
 - hfsplus: fix generic/020 xfstests failure
 - hfsplus: fix volume corruption issue for generic/498
 - hfsplus: fix volume corruption issue for generic/480
 - hfsplus: ensure sb->s_fs_info is always cleaned up
 - hfs: ensure sb->s_fs_info is always cleaned up
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQT4wVoLCG92poNnMFAhI4xTh21NnQUCaYaAugAKCRAhI4xTh21N
 nXLKAQCk3CLWz75YXHxkK1jJDqHC9iaVbjxd3I5Y0zI7KGVSoQEAmpw0oupfVpNp
 fgASBHE6fBvMJq2shv41na7S6cjMUQk=
 =wERj
 -----END PGP SIGNATURE-----

Merge tag 'hfs-v7.0-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/hfs

Pull hfs/hfsplus updates from Viacheslav Dubeyko:
 "This pull request contains several fixes of syzbot reported issues and
  HFS+ fixes of xfstests failures.

   - fix an issue reported by syzbot triggering BUG_ON() in the case of
     corrupted superblock, replacing the BUG_ON()s with proper error
     handling (Jori Koolstra)

   - fix memory leaks in the mount logic of HFS/HFS+ file systems. When
     HFS/HFS+ were converted to the new mount api a bug was introduced
     by changing the allocation pattern of sb->s_fs_info (Mehdi Ben Hadj
     Khelifa)

   - fix hfs_bnode_create() by returning ERR_PTR(-EEXIST) instead of
     the node pointer when it's already hashed.  This avoids a double
     unload_nls() on mount failure (suggested by Shardul Bankar)

   - set inode's mode as regular file for system inodes (Tetsuo Handa)

  The rest fix failures in generic/020, generic/037, generic/062,
  generic/480, and generic/498 xfstests for the case of HFS+ file
  system. Currently, only 30 xfstests' test-cases experience failures
  for HFS+ file system (initially, it was around 100 failed xfstests)"

* tag 'hfs-v7.0-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/hfs:
  hfsplus: avoid double unload_nls() on mount failure
  hfsplus: fix warning issue in inode.c
  hfsplus: fix generic/062 xfstests failure
  hfsplus: fix generic/037 xfstests failure
  hfsplus: pretend special inodes as regular files
  hfsplus: return error when node already exists in hfs_bnode_create
  hfs: Replace BUG_ON with error handling for CNID count checks
  hfsplus: fix generic/020 xfstests failure
  hfsplus: fix volume corruption issue for generic/498
  hfsplus: fix volume corruption issue for generic/480
  hfsplus: ensure sb->s_fs_info is always cleaned up
  hfs: ensure sb->s_fs_info is always cleaned up
This commit is contained in:
Linus Torvalds 2026-02-09 16:00:21 -08:00
commit 4fb7d86fbe
12 changed files with 407 additions and 122 deletions