Patch Series

Subject fs: rework inode reference counting
Author josef@toxicpanda.com
Date 2025-08-26 15:39:01 +0000 UTC
Version 2
Cc amir73il@gmail.com 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 (54)

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

Session 2025-08-26

ID (for dev) 1dc0c656-13db-4a02-9d0e-1d5bace0ed70
Status finished
Triaged OK [Log]
Execution Log [Link]
Test Base Patched Verdict
Build Base fab1beda7597fac1cecc01707d55eadb6bbe773c [Config] passed [Log]
Build Patched fab1beda7597fac1cecc01707d55eadb6bbe773c [Config] [Log] [patched] failed [Log]
kernel build error [Log]