linux/fs
Linus Torvalds 5903c871e2 New features and improvements for the ext4 file system
* Avoid unnecessary cache invadiation in the extent status cache
     (es_cache) when adding extents to be cached in the es_cache and we
     are not changing the extent tree.
   * Add a sysfs parameter, err_report_sec, to control how frequently
     to log a warning message that file system inconsistency has been
     detected.  (Previously we logged the warning message every 24
     hours.)
   * Avoid unnecessary forced ordered writes when appending to a file
     when delayed allocation is enabled.
   * Defer splitting unwritten extents to I/O completion to improve
     write performance of concurrent direct I/O writes to multiple
     files.
   * Refactor and add kunit tests to the extent splitting and
     conversion code paths.
 
 Various Bug Fixes
 
   * Fix a panic when the debugging DOUBLE_CHECK macro is defined.
   * Avoid using fast commit for rare and complex file system
     operations to make fast commit easier to reason about.  This can
     also avoid some corner cases that could result in file system
     inconsistency if there is a crash between the fast commit before a
     subsequent full commit.
   * Fix memory leaks in error paths
   * Fix a false positive reports caused when running stress tests
     using mixed huge-page workloads caused by a race between page
     migration and bitmap updates.
   * Fix a potential recursion into file system reclaim when evicting
     an inode when fast commit is enabled.
   * Fix a warning caused by a potential double decrement to the dirty
     clusters counter when executing FS_IOC_SHUTDOWN when running a
     stress test.
   * Enable mballoc optimzied scanning regardless whether the inode is
     using indirect blocks or extent trees to map blocks.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEK2m5VNv+CHkogTfJ8vlZVpUNgaMFAmmN9DEACgkQ8vlZVpUN
 gaNMFggAl4vUlkNjIkvsVovTroaCE/xXhO2UIdvQTUXQX+8U6i8Zft+F1ZgLWvVx
 fz84w9k0t47MHixYOF/+55JK3ljA7oufsqS60eZodpe//8/uK2C6tvtAJIqGJBjw
 tp306bidXSYhOVA3PqPSy0YZCIjMI08xiEYRio68VjpoHHJkr79K6eN+KcFOIsuF
 a+OfZN//IfOA1F53Gu9nO+X9XSBJ+yiztWIRhCS+DBKBC/bIg6ecybQKXOtvjvpw
 ggrIXQtHxhekqTjp2q467cNI51+s9aizM8RhnpP5DmS7e9U0Y/AsJ/5My5eJrimM
 +jKLpAQqKZK+IFuKxwEgLCAe5fOsfw==
 =eLR/
 -----END PGP SIGNATURE-----

Merge tag 'ext4_for_linus-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull ext4 updates from Ted Ts'o:
 "New features and improvements for the ext4 file system

   - Avoid unnecessary cache invalidation in the extent status cache
     (es_cache) when adding extents to be cached in the es_cache and we
     are not changing the extent tree

   - Add a sysfs parameter, err_report_sec, to control how frequently to
     log a warning message that file system inconsistency has been
     detected (Previously we logged the warning message every 24 hours)

   - Avoid unnecessary forced ordered writes when appending to a file
     when delayed allocation is enabled

   - Defer splitting unwritten extents to I/O completion to improve
     write performance of concurrent direct I/O writes to multiple files

   - Refactor and add kunit tests to the extent splitting and conversion
     code paths

  Various Bug Fixes:

   - Fix a panic when the debugging DOUBLE_CHECK macro is defined

   - Avoid using fast commit for rare and complex file system operations
     to make fast commit easier to reason about. This can also avoid
     some corner cases that could result in file system inconsistency if
     there is a crash between the fast commit before a subsequent full
     commit

   - Fix memory leaks in error paths

   - Fix a false positive reports caused when running stress tests using
     mixed huge-page workloads caused by a race between page migration
     and bitmap updates

   - Fix a potential recursion into file system reclaim when evicting an
     inode when fast commit is enabled

   - Fix a warning caused by a potential double decrement to the dirty
     clusters counter when executing FS_IOC_SHUTDOWN when running a
     stress test

   - Enable mballoc optimized scanning regardless whether the inode is
     using indirect blocks or extent trees to map blocks"

* tag 'ext4_for_linus-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (45 commits)
  et4: allow zeroout when doing written to unwritten split
  ext4: refactor split and convert extents
  ext4: refactor zeroout path and handle all cases
  ext4: propagate flags to ext4_convert_unwritten_extents_endio()
  ext4: propagate flags to convert_initialized_extent()
  ext4: add extent status cache support to kunit tests
  ext4: kunit tests for higher level extent manipulation functions
  ext4: kunit tests for extent splitting and conversion
  ext4: use optimized mballoc scanning regardless of inode format
  ext4: always allocate blocks only from groups inode can use
  ext4: fix dirtyclusters double decrement on fs shutdown
  ext4: fast commit: make s_fc_lock reclaim-safe
  ext4: fix e4b bitmap inconsistency reports
  ext4: remove redundant NULL check after __GFP_NOFAIL
  ext4: remove EXT4_GET_BLOCKS_IO_CREATE_EXT
  ext4: simplify the mapping query logic in ext4_iomap_begin()
  ext4: remove unused unwritten parameter in ext4_dio_write_iter()
  ext4: remove useless ext4_iomap_overwrite_ops
  ext4: avoid starting handle when dio writing an unwritten extent
  ext4: don't split extent before submitting I/O
  ...
2026-02-12 10:19:58 -08:00
..
9p vfs-7.0-rc1.misc 2026-02-09 15:13:05 -08:00
adfs
affs affs: add setlease file operation 2026-01-12 10:55:45 +01:00
afs Networking changes for 6.19. 2025-12-03 17:24:33 -08:00
autofs vfs-6.19-rc1.fixes 2025-12-05 15:52:30 -08:00
befs fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
bfs vfs-6.19-rc1.inode 2025-12-01 09:02:34 -08:00
btrfs Kbuild/Kconfig updates for 7.0 2026-02-11 13:40:35 -08:00
cachefiles vfs-6.19-rc1.directory.locking 2025-12-01 16:13:46 -08:00
ceph vfs-7.0-rc1.misc 2026-02-09 15:13:05 -08:00
coda Coccinelle-based conversion to use ->i_state accessors 2025-10-20 20:22:26 +02:00
configfs Some filesystems use a kinda-sorta controlled dentry refcount leak to pin 2025-12-05 14:36:21 -08:00
cramfs fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
crypto blk-crypto: handle the fallback above the block layer 2026-01-11 12:55:41 -07:00
debugfs debugfs: Fix memleak in debugfs_change_name(). 2025-12-19 16:43:40 +01:00
devpts convert devpts 2025-11-16 01:35:04 -05:00
dlm Locking updates for v6.20: 2026-02-10 12:28:44 -08:00
ecryptfs hardening updates for v7.0-rc1 2026-02-10 08:54:13 -08:00
efivarfs efivarfs: fix error propagation in efivar_entry_get() 2026-01-19 08:40:36 +01:00
efs fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
erofs Changes since last update: 2026-02-09 16:08:40 -08:00
exfat exfat: add setlease file operation 2026-01-12 10:55:46 +01:00
exportfs
ext2 vfs-7.0-rc1.fserror 2026-02-09 12:21:37 -08:00
ext4 New features and improvements for the ext4 file system 2026-02-12 10:19:58 -08:00
f2fs for-7.0/block-20260206 2026-02-09 17:57:21 -08:00
fat vfs-7.0-rc1.misc 2026-02-09 15:13:05 -08:00
freevxfs fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
fuse fs: fuse: fix max() of incompatible types 2026-02-09 15:19:43 -08:00
gfs2 gfs2 changes 2026-02-09 16:29:57 -08:00
hfs hfs: Replace BUG_ON with error handling for CNID count checks 2026-01-06 12:39:19 -08:00
hfsplus hfsplus: avoid double unload_nls() on mount failure 2026-02-06 15:20:00 -08:00
hostfs Apart from the usual small churn, we have 2025-12-05 16:30:56 -08:00
hpfs vfs-6.19-rc1.fs_header 2025-12-01 14:18:01 -08:00
hugetlbfs Some filesystems use a kinda-sorta controlled dentry refcount leak to pin 2025-12-05 14:36:21 -08:00
iomap for-7.0/block-stable-pages-20260206 2026-02-09 18:14:52 -08:00
isofs fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
jbd2 jbd2: fix the inconsistency between checksum and data in memory for journal sb 2025-11-26 17:05:47 -05:00
jffs2 jffs2: add setlease file operation 2026-01-12 10:55:46 +01:00
jfs Just a handful of minor jfs fixes 2026-02-12 09:30:56 -08:00
kernfs fs/kernfs: null-ptr deref in simple_xattrs_free() 2025-12-23 16:14:43 +01:00
lockd sunrpc: allow svc_recv() to return -ETIMEDOUT and -EBUSY 2026-01-28 10:15:42 -05:00
minix vfs-7.0-rc1.minix 2026-02-09 13:38:07 -08:00
netfs netfs: avoid double increment of retry_count in subreq 2026-02-08 17:07:43 -06:00
nfs NFSD 7.0 Release Notes 2026-02-12 08:23:53 -08:00
nfs_common NFSD: Remove NFSERR_EAGAIN 2026-01-02 13:43:41 -05:00
nfsd NFSD 7.0 Release Notes 2026-02-12 08:23:53 -08:00
nilfs2 nilfs2 updates for v7.0 2026-02-09 15:55:41 -08:00
nls fs/nls: Fix inconsistency between utf8_to_utf32() and utf32_to_utf8() 2025-12-01 11:58:06 +02:00
notify \n 2025-12-19 07:41:17 +12:00
ntfs3 struct filename series 2026-02-09 16:58:28 -08:00
ocfs2 ocfs2: add setlease file operation 2026-01-12 10:55:47 +01:00
omfs vfs-6.19-rc1.fs_header 2025-12-01 14:18:01 -08:00
openpromfs Coccinelle-based conversion to use ->i_state accessors 2025-10-20 20:22:26 +02:00
orangefs orangefs: fixes for string handling in orangefs-debugfs.c and xattr.c, 2026-02-12 08:57:31 -08:00
overlayfs vfs-7.0-rc1.leases 2026-02-09 11:59:07 -08:00
proc procfs: avoid fetching build ID while holding VMA lock 2026-02-05 14:10:00 -08:00
pstore pstore/ram: fix buffer overflow in persistent_ram_save_old() 2026-02-06 16:50:35 -08:00
qnx4 fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
qnx6 fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
quota quotactl_block(): switch to CLASS(filename) 2026-01-16 12:52:04 -05:00
ramfs Some filesystems use a kinda-sorta controlled dentry refcount leak to pin 2025-12-05 14:36:21 -08:00
resctrl fs/resctrl: Move RMID initialization to first mount 2026-01-10 11:46:48 +01:00
romfs romfs: check sb_set_blocksize() return value 2026-01-13 09:56:58 +01:00
smb 32 ksmbd and smbdirect fixes 2026-02-12 08:31:12 -08:00
squashfs squashfs: add setlease file operation 2026-01-12 10:55:47 +01:00
sysfs sysfs: remove exports of sysfs_*change_owner() 2026-02-05 16:49:38 +01:00
tests fs/tests: exec: drop duplicate bprm_stack_limits test vectors 2026-02-03 17:39:00 -08:00
tracefs convert tracefs 2025-11-16 01:35:03 -05:00
ubifs fs: add support for non-blocking timestamp updates 2026-01-12 14:01:33 +01:00
udf vfs-7.0-rc1.fserror 2026-02-09 12:21:37 -08:00
ufs ufs: add setlease file operation 2026-01-12 10:55:48 +01:00
unicode
vboxsf fs: remove simple_nosetlease() 2026-01-12 10:55:48 +01:00
verity bpf: Remove redundant KF_TRUSTED_ARGS flag from all kfuncs 2026-01-02 12:04:28 -08:00
xfs for-7.0/block-stable-pages-20260206 2026-02-09 18:14:52 -08:00
zonefs vfs-6.19-rc1.inode 2025-12-01 09:02:34 -08:00
aio.c aio: use credential guards 2025-11-04 12:36:33 +01:00
anon_inodes.c anon_inodes: convert to FD_ADD() 2025-11-28 12:42:31 +01:00
attr.c filelock: add struct delegated_inode 2025-11-12 09:38:34 +01:00
backing-file.c kernel-6.19-rc1.cred 2025-12-01 13:45:41 -08:00
bad_inode.c fs: refactor ->update_time handling 2026-01-12 14:01:32 +01:00
binfmt_elf.c rseq: Provide and use rseq_set_ids() 2025-11-04 08:33:33 +01:00
binfmt_elf_fdpic.c
binfmt_flat.c
binfmt_misc.c Some filesystems use a kinda-sorta controlled dentry refcount leak to pin 2025-12-05 14:36:21 -08:00
binfmt_script.c
bpf_fs_kfuncs.c bpf: Remove redundant KF_TRUSTED_ARGS flag from all kfuncs 2026-01-02 12:04:28 -08:00
buffer.c for-7.0/block-20260206 2026-02-09 17:57:21 -08:00
char_dev.c chardev: Switch to guard(mutex) and __free(kfree) 2025-12-24 13:55:51 +01:00
compat_binfmt_elf.c
coredump.c hardening updates for v7.0-rc1 2026-02-10 08:54:13 -08:00
d_path.c
dax.c Significant patch series in this merge are as follows: 2025-12-05 13:52:43 -08:00
dcache.c struct filename series 2026-02-09 16:58:28 -08:00
direct-io.c
drop_caches.c Coccinelle-based conversion to use ->i_state accessors 2025-10-20 20:22:26 +02:00
eventfd.c eventfd: convert do_eventfd() to FD_PREPARE() 2025-11-28 12:42:31 +01:00
eventpoll.c eventpoll: convert do_epoll_create() to FD_PREPARE() 2025-11-28 12:42:32 +01:00
exec.c struct filename series 2026-02-09 16:58:28 -08:00
fcntl.c vfs: expose delegation support to userland 2025-11-12 09:38:37 +01:00
fhandle.c name_to_handle_at(): use CLASS(filename_uflags) 2026-01-16 12:52:03 -05:00
file.c vfs-6.19-rc1.fd_prepare.fs 2025-12-01 17:32:07 -08:00
file_attr.c file_[gs]etattr(2): switch to CLASS(filename_maybe_null) 2026-01-16 12:52:03 -05:00
file_table.c Changes since last update: 2026-02-09 16:08:40 -08:00
filesystems.c sysfs(2): fs_index() argument is _not_ a pathname 2026-01-16 12:52:04 -05:00
fs-writeback.c cgroup: Changes for v6.20 2026-02-11 13:20:50 -08:00
fs_context.c fs: Remove internal old mount API code 2025-12-15 14:48:33 +01:00
fs_dirent.c fs: rename fs_types.h to fs_dirent.h 2025-11-05 09:51:30 +01:00
fs_parser.c
fs_pin.c
fs_struct.c fs: add <linux/init_task.h> for 'init_fs' 2026-01-14 16:50:37 +01:00
fserror.c fs: report filesystem and file I/O errors to fsnotify 2026-01-13 09:58:01 +01:00
fsopen.c struct filename series 2026-02-09 16:58:28 -08:00
init.c struct filename series 2026-02-09 16:58:28 -08:00
inode.c vfs-7.0-rc1.misc 2026-02-09 15:13:05 -08:00
internal.h struct filename series 2026-02-09 16:58:28 -08:00
ioctl.c
Kconfig Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
Kconfig.binfmt
kernel_read_file.c
libfs.c fs: remove simple_nosetlease() 2026-01-12 10:55:48 +01:00
locks.c NFSD 7.0 Release Notes 2026-02-12 08:23:53 -08:00
Makefile vfs-7.0-rc1.nullfs 2026-02-09 13:41:34 -08:00
mbcache.c
mnt_idmapping.c
mount.h fs: add immutable rootfs 2026-01-12 16:52:09 +01:00
mpage.c mpage: convert do_mpage_readpage() to return void type 2025-09-21 14:22:16 -07:00
namei.c struct filename series 2026-02-09 16:58:28 -08:00
namespace.c struct filename series 2026-02-09 16:58:28 -08:00
nsfs.c mount: add OPEN_TREE_NAMESPACE 2026-01-16 19:21:40 +01:00
nullfs.c fs: add immutable rootfs 2026-01-12 16:52:09 +01:00
open.c struct filename series 2026-02-09 16:58:28 -08:00
pidfs.c pidfs: protect PIDFD_GET_* ioctls() via ifdef 2026-01-06 23:08:12 +01:00
pipe.c Summary 2025-12-05 11:15:37 -08:00
pnode.c umount_tree(): take all victims out of propagation graph at once 2025-09-15 21:26:44 -04:00
pnode.h umount_tree(): take all victims out of propagation graph at once 2025-09-15 21:26:44 -04:00
posix_acl.c posix_acl: make posix_acl_to_xattr() alloc the buffer 2026-01-16 10:51:12 +01:00
proc_namespace.c
read_write.c fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
readdir.c readdir: require opt-in for d_type flags 2026-01-12 10:57:34 +01:00
remap_range.c
select.c select: store end_time as timespec64 in restart block 2025-12-24 14:01:57 +01:00
seq_file.c
signalfd.c signalfd: convert do_signalfd4() to FD_ADD() 2025-11-28 12:42:32 +01:00
splice.c fs: use min() or umin() instead of min_t() 2025-12-15 14:33:37 +01:00
stack.c
stat.c statx: switch to CLASS(filename_maybe_null) 2026-01-16 12:52:04 -05:00
statfs.c user_statfs(): switch to CLASS(filename) 2026-01-16 12:52:04 -05:00
super.c fs: report filesystem and file I/O errors to fsnotify 2026-01-13 09:58:01 +01:00
sync.c fs: factor out a sync_lazytime helper 2026-01-12 14:01:33 +01:00
sysctls.c
timerfd.c timerfd: convert timerfd_create() to FD_ADD() 2025-11-28 12:42:32 +01:00
userfaultfd.c Significant patch series in this merge are as follows: 2025-12-05 13:52:43 -08:00
utimes.c do_utimes_path(): switch to CLASS(filename_uflags) 2026-01-16 12:52:03 -05:00
xattr.c filename_...xattr(): don't consume filename reference 2026-01-16 12:52:03 -05:00