* [PATCH 1/2] NFS: Ensure the server has an up to date ctime before hardlinking
@ 2021-12-15 21:38 trondmy
2021-12-15 21:38 ` [PATCH 2/2] NFS: Ensure the server has an up to date ctime before renaming trondmy
0 siblings, 1 reply; 2+ messages in thread
From: trondmy @ 2021-12-15 21:38 UTC (permalink / raw)
To: linux-nfs
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 --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));
--
2.33.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] NFS: Ensure the server has an up to date ctime before renaming
2021-12-15 21:38 [PATCH 1/2] NFS: Ensure the server has an up to date ctime before hardlinking trondmy
@ 2021-12-15 21:38 ` trondmy
0 siblings, 0 replies; 2+ messages in thread
From: trondmy @ 2021-12-15 21:38 UTC (permalink / raw)
To: linux-nfs
From: Trond Myklebust <trond.myklebust@hammerspace.com>
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: f2c2c552f119 ("NFS: Move delegation recall into the NFSv4 callback for rename_setup()")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
---
fs/nfs/dir.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 4c4fdb208c7b..27f0ad481749 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -2470,6 +2470,8 @@ int nfs_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
}
}
+ 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);
--
2.33.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-15 21:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-15 21:38 [PATCH 1/2] NFS: Ensure the server has an up to date ctime before hardlinking trondmy
2021-12-15 21:38 ` [PATCH 2/2] NFS: Ensure the server has an up to date ctime before renaming trondmy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox