On Wed, 2019-05-29 at 22:34 +0300, Amir Goldstein wrote: > Hi Olga,Anna,Trond > > Could we get an ACK on this patch. > It is a prerequisite for merging the cross-device copy_file_range > work. > > It depends on a new helper introduced here: > https://lore.kernel.org/linux-fsdevel/CAOQ4uxjbcSWX1hUcuXbn8hFH3QYB+5bAC9Z1yCwJdR=T-GGtCg@xxxxxxxxxxxxxx/T/#m1569878c41f39fac3aadb3832a30659c323b582a > > Thanks, > Amir, > > On Wed, May 29, 2019 at 8:43 PM Amir Goldstein <amir73il@xxxxxxxxx> > wrote: > > Like ->write_iter(), we update mtime and strip setuid of dst file > > before > > copy and like ->read_iter(), we update atime of src file after > > copy. > > > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > > --- > > fs/nfs/nfs42proc.c | 9 ++++++--- > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c > > index 5196bfa7894d..c37a8e5116c6 100644 > > --- a/fs/nfs/nfs42proc.c > > +++ b/fs/nfs/nfs42proc.c > > @@ -345,10 +345,13 @@ ssize_t nfs42_proc_copy(struct file *src, > > loff_t pos_src, > > > > do { > > inode_lock(file_inode(dst)); > > - err = _nfs42_proc_copy(src, src_lock, > > - dst, dst_lock, > > - &args, &res); > > + err = file_modified(dst); > > + if (!err) > > + err = _nfs42_proc_copy(src, src_lock, > > + dst, dst_lock, > > + &args, &res); > > inode_unlock(file_inode(dst)); > > + file_accessed(src); > > > > if (err >= 0) > > break; > > -- > > 2.17.1 > > Please drop this patch. In the NFS protocol, the client is not expected to mess with atime or mtime other than when the user explicitly sets it through a call to utimensat() or similar. The server takes care of any a/mtime updates as and when the file is read/written to. Ditto for suid/sgid clearing. Motto: "No file_accessed() or file_remove_privs() calls, please. We're NFS." -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx