On Mon 07-08-23 15:38:36, Jeff Layton wrote: > In later patches, we're going to drop the "now" parameter from the > update_time operation. Fix fat_update_time to fetch its own timestamp. > It turns out that this is easily done by just passing a NULL timestamp > pointer to fat_update_time. ^^^ fat_truncate_time() > Also, it may be that things have changed by the time we get to calling > fat_update_time after checking inode_needs_update_time. Ensure that we > attempt the i_version bump if any of the S_* flags besides S_ATIME are > set. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/fat/misc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/fat/misc.c b/fs/fat/misc.c > index 67006ea08db6..8cab87145d63 100644 > --- a/fs/fat/misc.c > +++ b/fs/fat/misc.c > @@ -347,14 +347,14 @@ int fat_update_time(struct inode *inode, struct timespec64 *now, int flags) > return 0; > > if (flags & (S_ATIME | S_CTIME | S_MTIME)) { > - fat_truncate_time(inode, now, flags); > + fat_truncate_time(inode, NULL, flags); > if (inode->i_sb->s_flags & SB_LAZYTIME) > dirty_flags |= I_DIRTY_TIME; > else > dirty_flags |= I_DIRTY_SYNC; > } > > - if ((flags & S_VERSION) && inode_maybe_inc_iversion(inode, false)) > + if ((flags & (S_VERSION|S_CTIME|S_MTIME)) && inode_maybe_inc_iversion(inode, false)) > dirty_flags |= I_DIRTY_SYNC; > > __mark_inode_dirty(inode, dirty_flags); > > -- > 2.41.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR