Unverified Commit 37b27bd5 authored by Josef Bacik's avatar Josef Bacik Committed by Christian Brauner
Browse files

fs: add an icount_read helper



Instead of doing direct access to ->i_count, add a helper to handle
this. This will make it easier to convert i_count to a refcount later.

Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/9bc62a84c6b9d6337781203f60837bd98fbc4a96.1756222464.git.josef@toxicpanda.com


Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 9e70e985
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1430,7 +1430,7 @@ static int spufs_mfc_open(struct inode *inode, struct file *file)
	if (ctx->owner != current->mm)
		return -EINVAL;

	if (atomic_read(&inode->i_count) != 1)
	if (icount_read(inode) != 1)
		return -EBUSY;

	mutex_lock(&ctx->mapping_lock);
+1 −1
Original line number Diff line number Diff line
@@ -4538,7 +4538,7 @@ static void btrfs_prune_dentries(struct btrfs_root *root)

	inode = btrfs_find_first_inode(root, min_ino);
	while (inode) {
		if (atomic_read(&inode->vfs_inode.i_count) > 1)
		if (icount_read(&inode->vfs_inode) > 1)
			d_prune_aliases(&inode->vfs_inode);

		min_ino = btrfs_ino(inode) + 1;
+1 −1
Original line number Diff line number Diff line
@@ -2221,7 +2221,7 @@ static int trim_caps_cb(struct inode *inode, int mds, void *arg)
			int count;
			dput(dentry);
			d_prune_aliases(inode);
			count = atomic_read(&inode->i_count);
			count = icount_read(inode);
			if (count == 1)
				(*remaining)--;
			doutc(cl, "%p %llx.%llx cap %p pruned, count now %d\n",
+2 −2
Original line number Diff line number Diff line
@@ -252,10 +252,10 @@ void ext4_free_inode(handle_t *handle, struct inode *inode)
		       "nonexistent device\n", __func__, __LINE__);
		return;
	}
	if (atomic_read(&inode->i_count) > 1) {
	if (icount_read(inode) > 1) {
		ext4_msg(sb, KERN_ERR, "%s:%d: inode #%lu: count=%d",
			 __func__, __LINE__, inode->i_ino,
			 atomic_read(&inode->i_count));
			 icount_read(inode));
		return;
	}
	if (inode->i_nlink) {
+1 −1
Original line number Diff line number Diff line
@@ -1767,7 +1767,7 @@ static int writeback_single_inode(struct inode *inode,
	int ret = 0;

	spin_lock(&inode->i_lock);
	if (!atomic_read(&inode->i_count))
	if (!icount_read(inode))
		WARN_ON(!(inode->i_state & (I_WILL_FREE|I_FREEING)));
	else
		WARN_ON(inode->i_state & I_WILL_FREE);
Loading