Re: [PATCH v5 2/8] ext4: fix i_version handling in ext4

From: Theodore Ts'o
Date: Thu Sep 29 2022 - 21:23:48 EST


On Thu, Sep 08, 2022 at 01:24:42PM -0400, Jeff Layton wrote:
> ext4 currently updates the i_version counter when the atime is updated
> during a read. This is less than ideal as it can cause unnecessary cache
> invalidations with NFSv4 and unnecessary remeasurements for IMA.
>
> The increment in ext4_mark_iloc_dirty is also problematic since it can
> corrupt the i_version counter for ea_inodes. We aren't bumping the file
> times in ext4_mark_iloc_dirty, so changing the i_version there seems
> wrong, and is the cause of both problems.
>
> Remove that callsite and add increments to the setattr, setxattr and
> ioctl codepaths, at the same times that we update the ctime. The
> i_version bump that already happens during timestamp updates should take
> care of the rest.
>
> In ext4_move_extents, increment the i_version on both inodes, and also
> add in missing ctime updates.
>
> Cc: Lukas Czerner <lczerner@xxxxxxxxxx>
> Reviewed-by: Jan Kara <jack@xxxxxxx>
> Reviewed-by: Christian Brauner (Microsoft) <brauner@xxxxxxxxxx>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>

Thanks, I've applied just this patch from this patch series. I made
some minor adjustments since we've already enabled the i_version
counter unconditionally via another patch series from Lukas.

- Ted