Unverified Commit f5aa78e2 authored by Mateusz Guzik's avatar Mateusz Guzik Committed by Christian Brauner
Browse files

Manual conversion to use ->i_state accessors of all places not covered by coccinelle



Nothing to look at apart from iput_final().

Signed-off-by: default avatarMateusz Guzik <mjguzik@gmail.com>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent b4dbfd86
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -211,7 +211,7 @@ test and set for you.
e.g.::

	inode = iget_locked(sb, ino);
	if (inode->i_state & I_NEW) {
	if (inode_state_read_once(inode) & I_NEW) {
		err = read_inode_from_disk(inode);
		if (err < 0) {
			iget_failed(inode);
+1 −1
Original line number Diff line number Diff line
@@ -427,7 +427,7 @@ static void afs_fetch_status_success(struct afs_operation *op)
	struct afs_vnode *vnode = vp->vnode;
	int ret;

	if (vnode->netfs.inode.i_state & I_NEW) {
	if (inode_state_read_once(&vnode->netfs.inode) & I_NEW) {
		ret = afs_inode_init_from_status(op, vp, vnode);
		afs_op_set_error(op, ret);
		if (ret == 0)
+5 −5
Original line number Diff line number Diff line
@@ -425,7 +425,7 @@ void ext4_check_map_extents_env(struct inode *inode)
	if (!S_ISREG(inode->i_mode) ||
	    IS_NOQUOTA(inode) || IS_VERITY(inode) ||
	    is_special_ino(inode->i_sb, inode->i_ino) ||
	    (inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW)) ||
	    (inode_state_read_once(inode) & (I_FREEING | I_WILL_FREE | I_NEW)) ||
	    ext4_test_inode_flag(inode, EXT4_INODE_EA_INODE) ||
	    ext4_verity_in_progress(inode))
		return;
@@ -3473,7 +3473,7 @@ static bool ext4_inode_datasync_dirty(struct inode *inode)
	/* Any metadata buffers to write? */
	if (!list_empty(&inode->i_mapping->i_private_list))
		return true;
	return inode->i_state & I_DIRTY_DATASYNC;
	return inode_state_read_once(inode) & I_DIRTY_DATASYNC;
}

static void ext4_set_iomap(struct inode *inode, struct iomap *iomap,
@@ -4552,7 +4552,7 @@ int ext4_truncate(struct inode *inode)
	 * or it's a completely new inode. In those cases we might not
	 * have i_rwsem locked because it's not necessary.
	 */
	if (!(inode->i_state & (I_NEW|I_FREEING)))
	if (!(inode_state_read_once(inode) & (I_NEW | I_FREEING)))
		WARN_ON(!inode_is_locked(inode));
	trace_ext4_truncate_enter(inode);

@@ -5210,7 +5210,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
	inode = iget_locked(sb, ino);
	if (!inode)
		return ERR_PTR(-ENOMEM);
	if (!(inode->i_state & I_NEW)) {
	if (!(inode_state_read_once(inode) & I_NEW)) {
		ret = check_igot_inode(inode, flags, function, line);
		if (ret) {
			iput(inode);
@@ -5541,7 +5541,7 @@ static void __ext4_update_other_inode_time(struct super_block *sb,
	if (inode_is_dirtytime_only(inode)) {
		struct ext4_inode_info	*ei = EXT4_I(inode);

		inode->i_state &= ~I_DIRTY_TIME;
		inode_state_clear(inode, I_DIRTY_TIME);
		spin_unlock(&inode->i_lock);

		spin_lock(&ei->i_raw_lock);
+2 −2
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ int ext4_orphan_add(handle_t *handle, struct inode *inode)
	if (!sbi->s_journal || is_bad_inode(inode))
		return 0;

	WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) &&
	WARN_ON_ONCE(!(inode_state_read_once(inode) & (I_NEW | I_FREEING)) &&
		     !inode_is_locked(inode));
	if (ext4_inode_orphan_tracked(inode))
		return 0;
@@ -232,7 +232,7 @@ int ext4_orphan_del(handle_t *handle, struct inode *inode)
	if (!sbi->s_journal && !(sbi->s_mount_state & EXT4_ORPHAN_FS))
		return 0;

	WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) &&
	WARN_ON_ONCE(!(inode_state_read_once(inode) & (I_NEW | I_FREEING)) &&
		     !inode_is_locked(inode));
	if (ext4_test_inode_state(inode, EXT4_STATE_ORPHAN_FILE))
		return ext4_orphan_file_del(handle, inode);
+8 −10
Original line number Diff line number Diff line
@@ -829,7 +829,7 @@ static void evict(struct inode *inode)
	 * This also means we don't need any fences for the call below.
	 */
	inode_wake_up_bit(inode, __I_NEW);
	BUG_ON(inode->i_state != (I_FREEING | I_CLEAR));
	BUG_ON(inode_state_read_once(inode) != (I_FREEING | I_CLEAR));

	destroy_inode(inode);
}
@@ -1883,7 +1883,6 @@ static void iput_final(struct inode *inode)
{
	struct super_block *sb = inode->i_sb;
	const struct super_operations *op = inode->i_sb->s_op;
	unsigned long state;
	int drop;

	WARN_ON(inode_state_read(inode) & I_NEW);
@@ -1908,20 +1907,19 @@ static void iput_final(struct inode *inode)
	 */
	VFS_BUG_ON_INODE(atomic_read(&inode->i_count) != 0, inode);

	state = inode_state_read(inode);
	if (!drop) {
		WRITE_ONCE(inode->i_state, state | I_WILL_FREE);
	if (drop) {
		inode_state_set(inode, I_FREEING);
	} else {
		inode_state_set(inode, I_WILL_FREE);
		spin_unlock(&inode->i_lock);

		write_inode_now(inode, 1);

		spin_lock(&inode->i_lock);
		state = inode_state_read(inode);
		WARN_ON(state & I_NEW);
		state &= ~I_WILL_FREE;
		WARN_ON(inode_state_read(inode) & I_NEW);
		inode_state_replace(inode, I_WILL_FREE, I_FREEING);
	}

	WRITE_ONCE(inode->i_state, state | I_FREEING);
	if (!list_empty(&inode->i_lru))
		inode_lru_list_del(inode);
	spin_unlock(&inode->i_lock);
@@ -2985,7 +2983,7 @@ void dump_inode(struct inode *inode, const char *reason)
	pr_warn("%s encountered for inode %px\n"
		"fs %s mode %ho opflags 0x%hx flags 0x%x state 0x%x count %d\n",
		reason, inode, sb->s_type->name, inode->i_mode, inode->i_opflags,
		inode->i_flags, inode->i_state, atomic_read(&inode->i_count));
		inode->i_flags, inode_state_read_once(inode), atomic_read(&inode->i_count));
}

EXPORT_SYMBOL(dump_inode);
Loading