diff mbox series

[1/2] NFS: Ensure the server has an up to date ctime before hardlinking

Message ID 20211215213816.33864-1-trondmy@kernel.org (mailing list archive)
State New, archived
Headers show
Series [1/2] NFS: Ensure the server has an up to date ctime before hardlinking | expand

Commit Message

Trond Myklebust Dec. 15, 2021, 9:38 p.m. UTC
From: Trond Myklebust <trond.myklebust@hammerspace.com>

Creating a hard link 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: 9f7682728728 ("NFS: Move the delegation return down into nfs4_proc_link()")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
---
 fs/nfs/dir.c | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 731d31015b6a..4c4fdb208c7b 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -2379,6 +2379,8 @@  nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry)
 
 	trace_nfs_link_enter(inode, dir, dentry);
 	d_drop(dentry);
+	if (S_ISREG(inode->i_mode))
+		nfs_sync_inode(inode);
 	error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name);
 	if (error == 0) {
 		nfs_set_verifier(dentry, nfs_save_change_attribute(dir));