lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251128-vfs-headers-v619-d2ce5e771a9d@brauner>
Date: Fri, 28 Nov 2025 17:48:20 +0100
From: Christian Brauner <brauner@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Christian Brauner <brauner@...nel.org>,
	linux-fsdevel@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: [GIT PULL 09/17 for v6.19] vfs headers

Hey Linus,

/* Summary */
This contains initial work to start splitting up fs.h.

Begin the long-overdue work of splitting up the monolithic fs.h header.
The header has grown to over 3000 lines and includes types and functions
for many different subsystems, making it difficult to navigate and
causing excessive compilation dependencies.

This series introduces new focused headers for superblock-related code:

- Rename fs_types.h to fs_dirent.h to better reflect its actual content
  (directory entry types)

- Add fs/super_types.h containing superblock type definitions

- Add fs/super.h containing superblock function declarations

This is the first step in a longer effort to modularize the VFS headers.

Cleanups

- Inode Field Layout Optimization (Mateusz Guzik)

- Move inode fields used during fast path lookup closer together to improve
  cache locality during path resolution.

- current_umask() Optimization (Mateusz Guzik)

- Inline current_umask() and move it to fs_struct.h. This improves
  performance by avoiding function call overhead for this frequently-used
  function, and places it in a more appropriate header since it operates
  on fs_struct.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

diff --cc include/linux/fs.h
index 1011b82977fc,64dc2e2c281f..000000000000
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -2880,11 -2335,8 +2395,9 @@@ static inline void super_set_sysfs_name
        va_end(args);
  }

- extern int current_umask(void);
-
  extern void ihold(struct inode * inode);
  extern void iput(struct inode *);
 +void iput_not_last(struct inode *);
  int inode_update_timestamps(struct inode *inode, int flags);
  int generic_update_time(struct inode *, int);

@@@ -3481,11 -2929,8 +2988,8 @@@ static inline void remove_inode_hash(st
  }

  extern void inode_sb_list_add(struct inode *inode);
 -extern void inode_add_lru(struct inode *inode);
 +extern void inode_lru_list_add(struct inode *inode);

- int sb_set_blocksize(struct super_block *sb, int size);
- int __must_check sb_min_blocksize(struct super_block *sb, int size);
-
  int generic_file_mmap(struct file *, struct vm_area_struct *);
  int generic_file_mmap_prepare(struct vm_area_desc *desc);
  int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
diff --git a/include/linux/fs/super.h b/include/linux/fs/super.h
index c0d22b12c1c9..69c11b28ed65 100644
--- a/include/linux/fs/super.h
+++ b/include/linux/fs/super.h
@@ -223,7 +223,7 @@ static inline bool sb_has_encoding(const struct super_block *sb)
 }

 int sb_set_blocksize(struct super_block *sb, int size);
-int sb_min_blocksize(struct super_block *sb, int size);
+int __must_check sb_min_blocksize(struct super_block *sb, int size);

 int freeze_super(struct super_block *super, enum freeze_holder who,
                 const void *freeze_owner);
diff --git a/include/linux/fs/super_types.h b/include/linux/fs/super_types.h
index 45cfd45b9fe0..6bd3009e09b3 100644
--- a/include/linux/fs/super_types.h
+++ b/include/linux/fs/super_types.h
@@ -267,6 +267,7 @@ struct super_block {

        spinlock_t                              s_inode_wblist_lock;
        struct list_head                        s_inodes_wb;    /* writeback inodes */
+       long                                    s_min_writeback_pages;
 } __randomize_layout;

 /*

Merge conflicts with other trees
================================

The following changes since commit dcb6fa37fd7bc9c3d2b066329b0d27dedf8becaa:

  Linux 6.18-rc3 (2025-10-26 15:59:49 -0700)

are available in the Git repository at:

  git@...olite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.19-rc1.fs_header

for you to fetch changes up to dca3aa666fbd71118905d88bb1c353881002b647:

  fs: move inode fields used during fast path lookup closer together (2025-11-11 10:49:54 +0100)

Please consider pulling these changes from the signed vfs-6.19-rc1.fs_header tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.19-rc1.fs_header

----------------------------------------------------------------
Christian Brauner (4):
      fs: rename fs_types.h to fs_dirent.h
      fs: add fs/super_types.h header
      fs: add fs/super.h header
      Merge patch series "fs: start to split up fs.h"

Mateusz Guzik (2):
      fs: inline current_umask() and move it to fs_struct.h
      fs: move inode fields used during fast path lookup closer together

 fs/9p/acl.c                               |   1 +
 fs/Makefile                               |   2 +-
 fs/btrfs/inode.c                          |   1 +
 fs/f2fs/acl.c                             |   1 +
 fs/fat/inode.c                            |   1 +
 fs/{fs_types.c => fs_dirent.c}            |   2 +-
 fs/fs_struct.c                            |   6 -
 fs/hfsplus/options.c                      |   1 +
 fs/hpfs/super.c                           |   1 +
 fs/nilfs2/nilfs.h                         |   1 +
 fs/ntfs3/super.c                          |   1 +
 fs/ocfs2/acl.c                            |   1 +
 fs/omfs/inode.c                           |   1 +
 fs/smb/client/file.c                      |   1 +
 fs/smb/client/inode.c                     |   1 +
 fs/smb/client/smb1ops.c                   |   1 +
 include/linux/fs.h                        | 533 +-----------------------------
 include/linux/fs/super.h                  | 233 +++++++++++++
 include/linux/fs/super_types.h            | 335 +++++++++++++++++++
 include/linux/{fs_types.h => fs_dirent.h} |  11 +-
 include/linux/fs_struct.h                 |   6 +
 include/linux/namei.h                     |   1 +
 22 files changed, 600 insertions(+), 542 deletions(-)
 rename fs/{fs_types.c => fs_dirent.c} (98%)
 create mode 100644 include/linux/fs/super.h
 create mode 100644 include/linux/fs/super_types.h
 rename include/linux/{fs_types.h => fs_dirent.h} (92%)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ