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;
}
next prev parent 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