Linux NFS development
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Frank van Maarseveen <frankvm@frankvm.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>,
	Andre Majorel <aym-xunil-Bi/FLWfhfolQFI55V6+gNQ@public.gmane.org>,
	linux-nfs@vger.kernel.org, Jens Axboe <jens.axboe@oracle.com>
Subject: Re: atimes not updated over NFS
Date: Mon, 28 Jan 2008 21:59:40 -0500	[thread overview]
Message-ID: <20080129025940.GI16785@fieldses.org> (raw)
In-Reply-To: <20080122171717.GD24697@fieldses.org>

On Tue, Jan 22, 2008 at 12:17:17PM -0500, bfields wrote:
> On Mon, Jan 21, 2008 at 04:09:25PM -0500, bfields wrote:
> > On Mon, Jan 21, 2008 at 10:02:30PM +0100, Frank van Maarseveen wrote:
> > > 2.6.22.10:
> > > 	t
> > > 	t + 2
> > > 	t + 2
> > > 
> > > (same behavior)
> > > 
> > > 2.6.23.12:
> > > 	t
> > > 	t
> > > 	t
> > > 
> > > definately not good. "cat" on the server updates atime again.
> > 
> > Yes, that looks like a server bug, and this:...
> > 
> > > 
> > > 
> > > Trying a different combination of kernels:
> > > 
> > > server 2.6.23.12, client 2.6.22.10:
> > > 	t
> > > 	t
> > > 	t
> > > 
> > > server 2.6.22.10, client 2.6.23.12:
> > > 	t
> > > 	t + 2
> > > 	t + 2
> > 
> > ...confirms that since the results appear to depend only on the server
> > version, not on the client version.
> 
> And I can confirm this here on 2.6.24-rc8 (+ a few patches).
> Unfortunately, I don't have any suggestion better right now than
> bisecting....

It looks like this happened in the switch from sendfile to sparse.
Jens, any advice?  What happened was nfsd reads stopped updating the
atime after the following commit.

--b.

commit f0930fffa99e7fe0a0c4b6c7d9a244dc88288c27
Author: Jens Axboe <jens.axboe@oracle.com>
Date:   Fri Jun 1 11:51:43 2007 +0200

    sendfile: convert nfs to using splice_read()
    
    Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 9eb8eb4..8689b73 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -41,7 +41,9 @@ static int nfs_file_open(struct inode *, struct file *);
 static int nfs_file_release(struct inode *, struct file *);
 static loff_t nfs_file_llseek(struct file *file, loff_t offset, int origin);
 static int  nfs_file_mmap(struct file *, struct vm_area_struct *);
-static ssize_t nfs_file_sendfile(struct file *, loff_t *, size_t, read_actor_t, void *);
+static ssize_t nfs_file_splice_read(struct file *filp, loff_t *ppos,
+					struct pipe_inode_info *pipe,
+					size_t count, unsigned int flags);
 static ssize_t nfs_file_read(struct kiocb *, const struct iovec *iov,
 				unsigned long nr_segs, loff_t pos);
 static ssize_t nfs_file_write(struct kiocb *, const struct iovec *iov,
@@ -65,7 +67,7 @@ const struct file_operations nfs_file_operations = {
 	.fsync		= nfs_fsync,
 	.lock		= nfs_lock,
 	.flock		= nfs_flock,
-	.sendfile	= nfs_file_sendfile,
+	.splice_read	= nfs_file_splice_read,
 	.check_flags	= nfs_check_flags,
 };
 
@@ -224,20 +226,21 @@ nfs_file_read(struct kiocb *iocb, const struct iovec *iov,
 }
 
 static ssize_t
-nfs_file_sendfile(struct file *filp, loff_t *ppos, size_t count,
-		read_actor_t actor, void *target)
+nfs_file_splice_read(struct file *filp, loff_t *ppos,
+		     struct pipe_inode_info *pipe, size_t count,
+		     unsigned int flags)
 {
 	struct dentry *dentry = filp->f_path.dentry;
 	struct inode *inode = dentry->d_inode;
 	ssize_t res;
 
-	dfprintk(VFS, "nfs: sendfile(%s/%s, %lu@%Lu)\n",
+	dfprintk(VFS, "nfs: splice_read(%s/%s, %lu@%Lu)\n",
 		dentry->d_parent->d_name.name, dentry->d_name.name,
 		(unsigned long) count, (unsigned long long) *ppos);
 
 	res = nfs_revalidate_mapping(inode, filp->f_mapping);
 	if (!res)
-		res = generic_file_sendfile(filp, ppos, count, actor, target);
+		res = generic_file_splice_read(filp, ppos, pipe, count, flags);
 	return res;
 }
 

  reply	other threads:[~2008-01-29  2:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-09 10:13 atimes not updated over NFS Andre Majorel
     [not found] ` <20080109101313.GG9212-956IwFboN44acnK+F/IuxqxOck334EZe@public.gmane.org>
2008-01-09 15:27   ` Trond Myklebust
     [not found]     ` <1199892437.11141.2.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-01-09 22:37       ` Andre Majorel
     [not found]         ` <20080109223748.GH9212-956IwFboN44acnK+F/IuxqxOck334EZe@public.gmane.org>
2008-01-09 23:23           ` Trond Myklebust
     [not found]             ` <1199920996.7638.3.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-01-09 23:31               ` Trond Myklebust
2008-01-09 23:51               ` Andre Majorel
     [not found]                 ` <20080109235153.GI9212-956IwFboN44acnK+F/IuxqxOck334EZe@public.gmane.org>
2008-01-14  8:34                   ` Frank van Maarseveen
2008-01-14 15:43                     ` Trond Myklebust
     [not found]                       ` <1200325393.7470.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-01-14 17:51                         ` Frank van Maarseveen
2008-01-21 19:06                           ` J. Bruce Fields
2008-01-21 19:31                             ` Trond Myklebust
     [not found]                               ` <1200943865.25562.56.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-01-21 21:02                                 ` Frank van Maarseveen
2008-01-21 21:09                                   ` J. Bruce Fields
2008-01-22 17:17                                     ` J. Bruce Fields
2008-01-29  2:59                                       ` J. Bruce Fields [this message]
2008-01-29  4:14                                         ` J. Bruce Fields
2008-01-29  8:34                                           ` Jens Axboe
2008-01-29 18:27                                             ` J. Bruce Fields
2008-01-29 18:30                                               ` Jens Axboe
2008-01-29 19:45                                                 ` J. Bruce Fields
2008-01-29 19:51                                                   ` Jens Axboe
2008-01-29 20:09                                                     ` J. Bruce Fields
2008-01-29 20:12                                                       ` Jens Axboe
2008-01-29 20:37                                                 ` Andre Majorel
     [not found]                                                   ` <20080129203713.GS17213-956IwFboN44acnK+F/IuxqxOck334EZe@public.gmane.org>
2008-01-30 11:23                                                     ` Jens Axboe
2008-01-30 12:13                                                       ` Andre Majorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080129025940.GI16785@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=aym-xunil-Bi/FLWfhfolQFI55V6+gNQ@public.gmane.org \
    --cc=frankvm@frankvm.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@fys.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox