Thread (107 messages) 107 messages, 7 authors, 2025-09-09

Re: [PATCH v2 39/54] fs: remove I_WILL_FREE|I_FREEING check from dquot.c

From: Christian Brauner <brauner@kernel.org>
Date: 2025-08-28 12:35:54
Also in: linux-btrfs, linux-fsdevel, linux-xfs

On Tue, Aug 26, 2025 at 11:39:39AM -0400, Josef Bacik wrote:
quoted hunk ↗ jump to hunk
We can use the reference count to see if the inode is live.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/quota/dquot.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index df4a9b348769..90e69653c261 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -1030,14 +1030,16 @@ static int add_dquot_ref(struct super_block *sb, int type)
 	spin_lock(&sb->s_inode_list_lock);
 	list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
 		spin_lock(&inode->i_lock);
-		if ((inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) ||
+		if ((inode->i_state & I_NEW) ||
 		    !atomic_read(&inode->i_writecount) ||
 		    !dqinit_needed(inode, type)) {
 			spin_unlock(&inode->i_lock);
 			continue;
 		}
-		__iget(inode);
 		spin_unlock(&inode->i_lock);
+
+		if (!igrab(inode))
+			continue;
Using this to drop a comment that I mentioned to you. I think we should
have an iterator for this because we have the exact same pattern in so
many places it's annoying.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help