NFS: Ensure the server has an up to date ctime before renaming

[ Upstream commit 6ff9d99bb8 ]

Renaming a file is required by POSIX to update the file ctime, so
ensure that the file data is synced to disk so that we don't clobber the
updated ctime by writing back after creating the hard link.

Fixes: f2c2c552f1 ("NFS: Move delegation recall into the NFSv4 callback for rename_setup()")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Trond Myklebust 2021-12-15 16:38:16 -05:00 committed by Greg Kroah-Hartman
parent 30965c7682
commit abcb9d80a4
1 changed files with 2 additions and 0 deletions

View File

@ -2143,6 +2143,8 @@ int nfs_rename(struct inode *old_dir, struct dentry *old_dentry,
}
}
if (S_ISREG(old_inode->i_mode))
nfs_sync_inode(old_inode);
task = nfs_async_rename(old_dir, new_dir, old_dentry, new_dentry, NULL);
if (IS_ERR(task)) {
error = PTR_ERR(task);