Commit 50f094a5 authored by Lukas Czerner's avatar Lukas Czerner Committed by Theodore Ts'o
Browse files

ext4: don't increase iversion counter for ea_inodes



ea_inodes are using i_version for storing part of the reference count so
we really need to leave it alone.

The problem can be reproduced by xfstest ext4/026 when iversion is
enabled. Fix it by not calling inode_inc_iversion() for EXT4_EA_INODE_FL
inodes in ext4_mark_iloc_dirty().

Cc: stable@kernel.org
Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Reviewed-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
Link: https://lore.kernel.org/r/20220824160349.39664-1-lczerner@redhat.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 61a1d87a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -5731,7 +5731,12 @@ int ext4_mark_iloc_dirty(handle_t *handle,
	}
	ext4_fc_track_inode(handle, inode);

	if (IS_I_VERSION(inode))
	/*
	 * ea_inodes are using i_version for storing reference count, don't
	 * mess with it
	 */
	if (IS_I_VERSION(inode) &&
	    !(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL))
		inode_inc_iversion(inode);

	/* the do_update_inode consumes one bh->b_count */