From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christian Brauner <brauner@kernel.org>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL 09/17 for v6.19] vfs headers
Date: Fri, 28 Nov 2025 17:48:20 +0100 [thread overview]
Message-ID: <20251128-vfs-headers-v619-d2ce5e771a9d@brauner> (raw)
In-Reply-To: <20251128-vfs-v619-77cd88166806@brauner>
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@gitolite.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%)
next prev parent reply other threads:[~2025-11-28 16:51 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-28 16:48 [GIT PULL 00/17 for v6.19] v6.19 Christian Brauner
2025-11-28 16:48 ` [GIT PULL 01/17 for v6.19] vfs iomap Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 02/17 for v6.19] vfs misc Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 03/17 for v6.19] vfs inode Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 04/17 for v6.19] vfs writeback Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 05/17 for v6.19] namespaces Christian Brauner
2025-12-01 19:06 ` Eric W. Biederman
2025-12-02 17:00 ` Linus Torvalds
2025-12-03 10:07 ` Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 06/17 for v6.19] vfs coredump Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 07/17 for v6.19] vfs folio Christian Brauner
2025-12-01 22:08 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 08/17 for v6.19] cred guards Christian Brauner
2025-12-01 21:53 ` Linus Torvalds
2025-12-02 1:26 ` Sasha Levin
2025-12-02 1:36 ` [PATCH] nfs/localio: make do_nfs_local_call_write() return void Sasha Levin
2025-12-01 22:08 ` [GIT PULL 08/17 for v6.19] cred guards pr-tracker-bot
2025-11-28 16:48 ` Christian Brauner [this message]
2025-12-01 23:22 ` [GIT PULL 09/17 for v6.19] vfs headers pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 10/17 for v6.19] vfs super guards Christian Brauner
2025-12-01 23:22 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 11/17 for v6.19] minix Christian Brauner
2025-12-01 23:22 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 12/17 for v6.19] vfs directory delegations Christian Brauner
2025-12-02 3:19 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 13/17 for v6.19] vfs directory locking Christian Brauner
2025-12-02 3:19 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 14/17 for v6.19] overlayfs cred guards Christian Brauner
2025-12-02 3:19 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 15/17 for v6.19] autofs Christian Brauner
2025-12-02 3:19 ` pr-tracker-bot
2025-11-28 16:48 ` [GIT PULL 16/17 for v6.19] vfs fd prepare Christian Brauner
2025-12-01 14:15 ` Al Viro
2025-12-01 18:41 ` Sean Christopherson
2025-11-28 16:48 ` [GIT PULL 17/17 for v6.19] vfs fd prepare minimal Christian Brauner
2025-12-02 1:35 ` Linus Torvalds
2025-12-02 9:42 ` Christian Brauner
2025-12-02 3:19 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251128-vfs-headers-v619-d2ce5e771a9d@brauner \
--to=brauner@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).