Unverified Commit 3bc4e441 authored by Jan Kara's avatar Jan Kara Committed by Christian Brauner
Browse files

vfs: Remove unnecessary list_for_each_entry_safe() from evict_inodes()



evict_inodes() uses list_for_each_entry_safe() to iterate sb->s_inodes
list. However, since we use i_lru list entry for our local temporary
list of inodes to destroy, the inode is guaranteed to stay in
sb->s_inodes list while we hold sb->s_inode_list_lock. So there is no
real need for safe iteration variant and we can use
list_for_each_entry() just fine.

Signed-off-by: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/20250709090635.26319-2-jack@suse.cz


Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 25050181
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -865,12 +865,12 @@ static void dispose_list(struct list_head *head)
 */
void evict_inodes(struct super_block *sb)
{
	struct inode *inode, *next;
	struct inode *inode;
	LIST_HEAD(dispose);

again:
	spin_lock(&sb->s_inode_list_lock);
	list_for_each_entry_safe(inode, next, &sb->s_inodes, i_sb_list) {
	list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
		if (atomic_read(&inode->i_count))
			continue;