Patch Series

Subject fs: rework inode reference counting
Author josef@toxicpanda.com
Date 2025-08-21 20:18:12 +0000 UTC
Version 1
Cc brauner@kernel.org josef@toxicpanda.com kernel-team@fb.com linux-btrfs@vger.kernel.org linux-ext4@vger.kernel.org linux-fsdevel@vger.kernel.org linux-xfs@vger.kernel.org viro@zeniv.linux.org.uk

Patches (50)

Name Content
[PATCH 01/50] fs: add an i_obj_count refcount to the inode [Body]
[PATCH 02/50] fs: make the i_state flags an enum [Body]
[PATCH 03/50] fs: hold an i_obj_count reference in wait_sb_inodes [Body]
[PATCH 04/50] fs: hold an i_obj_count reference for the i_wb_list [Body]
[PATCH 05/50] fs: hold an i_obj_count reference for the i_io_list [Body]
[PATCH 06/50] fs: hold an i_obj_count reference in writeback_sb_inodes [Body]
[PATCH 07/50] fs: hold an i_obj_count reference while on the hashtable [Body]
[PATCH 08/50] fs: hold an i_obj_count reference while on the LRU list [Body]
[PATCH 09/50] fs: hold an i_obj_count reference while on the sb inode list [Body]
[PATCH 10/50] fs: stop accessing ->i_count directly in f2fs and gfs2 [Body]
[PATCH 11/50] fs: hold an i_obj_count when we have an i_count reference [Body]
[PATCH 12/50] fs: rework iput logic [Body]
[PATCH 13/50] fs: add an I_LRU flag to the inode [Body]
[PATCH 14/50] fs: maintain a list of pinned inodes [Body]
[PATCH 15/50] fs: delete the inode from the LRU list on lookup [Body]
[PATCH 16/50] fs: change evict_inodes to use iput instead of evict directly [Body]
[PATCH 17/50] fs: hold a full ref while the inode is on a LRU [Body]
[PATCH 18/50] fs: disallow 0 reference count inodes [Body]
[PATCH 19/50] fs: make evict_inodes add to the dispose list under the i_lock [Body]
[PATCH 20/50] fs: convert i_count to refcount_t [Body]
[PATCH 21/50] fs: use refcount_inc_not_zero in igrab [Body]
[PATCH 22/50] fs: use inode_tryget in find_inode* [Body]
[PATCH 23/50] fs: update find_inode_*rcu to check the i_count count [Body]
[PATCH 24/50] fs: use igrab in insert_inode_locked [Body]
[PATCH 25/50] fs: remove I_WILL_FREE|I_FREEING check from __inode_add_lru [Body]
[PATCH 26/50] fs: remove I_WILL_FREE|I_FREEING check in inode_pin_lru_isolating [Body]
[PATCH 27/50] fs: use inode_tryget in evict_inodes [Body]
[PATCH 28/50] fs: change evict_dentries_for_decrypted_inodes to use refcount [Body]
[PATCH 29/50] block: use igrab in sync_bdevs [Body]
[PATCH 30/50] bcachefs: use the refcount instead of I_WILL_FREE|I_FREEING [Body]
[PATCH 31/50] btrfs: don't check I_WILL_FREE|I_FREEING [Body]
[PATCH 32/50] fs: use igrab in drop_pagecache_sb [Body]
[PATCH 33/50] fs: stop checking I_FREEING in d_find_alias_rcu [Body]
[PATCH 34/50] ext4: stop checking I_WILL_FREE|IFREEING in ext4_check_map_extents_env [Body]
[PATCH 35/50] fs: remove I_WILL_FREE|I_FREEING from fs-writeback.c [Body]
[PATCH 36/50] gfs2: remove I_WILL_FREE|I_FREEING usage [Body]
[PATCH 37/50] fs: remove I_WILL_FREE|I_FREEING check from dquot.c [Body]
[PATCH 38/50] notify: remove I_WILL_FREE|I_FREEING checks in fsnotify_unmount_inodes [Body]
[PATCH 39/50] xfs: remove I_FREEING check [Body]
[PATCH 40/50] landlock: remove I_FREEING|I_WILL_FREE check [Body]
[PATCH 41/50] fs: change inode_is_dirtytime_only to use refcount [Body]
[PATCH 42/50] btrfs: remove references to I_FREEING [Body]
[PATCH 43/50] ext4: remove reference to I_FREEING in inode.c [Body]
[PATCH 44/50] ext4: remove reference to I_FREEING in orphan.c [Body]
[PATCH 45/50] pnfs: use i_count refcount to determine if the inode is going away [Body]
[PATCH 46/50] fs: remove some spurious I_FREEING references in inode.c [Body]
[PATCH 47/50] xfs: remove reference to I_FREEING|I_WILL_FREE [Body]
[PATCH 48/50] ocfs2: do not set I_WILL_FREE [Body]
[PATCH 49/50] fs: remove I_FREEING|I_WILL_FREE [Body]
[PATCH 50/50] fs: add documentation explaining the reference count rules for inodes [Body]

Session 2025-08-21

ID (for dev) e9efb510-f507-4629-865e-fef1ed643ec2
Status finished
Triaged OK [Log]
Execution Log [Link]
Test Base Patched Verdict
Build Base 068a56e56fa81e42fc5f08dff34fab149bb60a09 [Config] passed [Log]
Build Patched 068a56e56fa81e42fc5f08dff34fab149bb60a09 [Config] [Log] [patched] failed [Log]
kernel build error [Log]