Messages in this thread | | | Date | Thu, 6 Jul 2023 12:39:09 +0200 | From | Jan Kara <> | Subject | Re: [PATCH v2 12/92] exfat: convert to simple_rename_timestamp |
| |
On Wed 05-07-23 15:00:37, Jeff Layton wrote: > A rename potentially involves updating 4 different inode timestamps. > Convert to the new simple_rename_timestamp helper function. > > Signed-off-by: Jeff Layton <jlayton@kernel.org> > --- > fs/exfat/namei.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c > index d9b46fa36bff..e91022ff80ef 100644 > --- a/fs/exfat/namei.c > +++ b/fs/exfat/namei.c > @@ -1312,8 +1312,8 @@ static int exfat_rename(struct mnt_idmap *idmap, > goto unlock; > > inode_inc_iversion(new_dir); > - new_dir->i_ctime = new_dir->i_mtime = new_dir->i_atime = > - EXFAT_I(new_dir)->i_crtime = current_time(new_dir); > + simple_rename_timestamp(old_dir, old_dentry, new_dir, new_dentry); > + EXFAT_I(new_dir)->i_crtime = current_time(new_dir);
Hum, you loose atime update with this. Not that it would make sense to have it but it would probably deserve a comment in the changelog.
Also why you use current_time(new_dir) here instead of say inode->i_ctime?
> exfat_truncate_atime(&new_dir->i_atime); > if (IS_DIRSYNC(new_dir)) > exfat_sync_inode(new_dir); > @@ -1336,7 +1336,6 @@ static int exfat_rename(struct mnt_idmap *idmap, > } > > inode_inc_iversion(old_dir); > - old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir); > if (IS_DIRSYNC(old_dir)) > exfat_sync_inode(old_dir); > else
Also there is:
new_inode->i_ctime = EXFAT_I(new_inode)->i_crtime = current_time(new_inode);
in exfat_rename() from which you can remove the ctime update?
Honza -- Jan Kara <jack@suse.com> SUSE Labs, CR
| |