From: Joe Korty <joe.korty@ccur.com>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: linux-kernel@vger.kernel.org, Ronny.Lampert@telecasystems.de,
ioe-lkml@rameria.de
Subject: Re: [BUG] NFS no longer updates file modification times appropriately
Date: Mon, 7 Jun 2004 11:21:39 -0400 [thread overview]
Message-ID: <20040607152139.GA21926@tsunami.ccur.com> (raw)
In-Reply-To: <1086297112.3659.3.camel@lade.trondhjem.org>
On Thu, Jun 03, 2004 at 05:11:52PM -0400, Trond Myklebust wrote:
> P? to , 03/06/2004 klokka 13:28, skreiv Joe Korty:
>> Paraphrased from one of my inhouse customers: "The timestamp of an
>> NFS-mounted file does not change when written to, when the below test is
>> run on a 2.6.6-rc1 to 2.6.7-rc2 kernel. The timestamp is appropriately
>> updated when the test is run on a 2.6.5 kernel. This is with NFSv3.
>> The type of system serving up the files does not seem to be a factor."
>
> NFS is only guaranteed to flush the file to disk when you do the
> close(). Your program will just result in a lot of cached writes right
> up until the moment it exits...
>
> ...and no - we do not update timestamps on the client side when we cache
> the write, 'cos NFS does not provide any device for ensuring that clocks
> on client and server are synchronized.
Hi Trond,
For those interested, this patch reverts NFS to the old behavior of
a timestamp-for-each-write.
I see no harm in it. After all, timestamps have to be updated on file
creation and close, which are also initiated from the client, just as
writes are. So allowing timestamp update on create/close but not writes
does not make much sense to me.
Unless the real reason is reducing ethernet traffic. In which case we
could defer a timestamp-on-write only when it is still in the same second
as the previous write, but don't defer when a new second rolls around
on the client. That would reduce timestamp updates to at most one per
second per inode per client, while preserving old NFS behavior.
Regards,
Joe
--- base/fs/nfs/write.c 2004-06-07 10:25:33.861224586 -0400
+++ new/fs/nfs/write.c 2004-06-07 11:06:22.044853102 -0400
@@ -417,7 +417,7 @@
nfsi->npages--;
if (!nfsi->npages) {
spin_unlock(&nfs_wreq_lock);
- nfs_end_data_update_defer(inode);
+ nfs_end_data_update(inode);
iput(inode);
} else
spin_unlock(&nfs_wreq_lock);
next prev parent reply other threads:[~2004-06-07 15:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-03 20:28 Joe Korty
2004-06-03 21:11 ` Trond Myklebust
2004-06-04 3:25 ` Ingo Oeser
2004-06-06 19:17 ` Trond Myklebust
2004-06-04 13:23 ` Joe Korty
2004-06-04 23:08 ` Trond Myklebust
2004-06-04 23:24 ` Stephen Hemminger
2004-06-04 23:37 ` Trond Myklebust
2004-06-07 15:21 ` Joe Korty [this message]
2004-06-07 15:51 ` Trond Myklebust
2004-06-07 16:13 ` Joe Korty
2004-06-07 16:20 ` Trond Myklebust
2004-06-07 16:39 ` Joe Korty
2004-06-07 16:53 ` Trond Myklebust
2004-06-07 17:01 ` Trond Myklebust
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=20040607152139.GA21926@tsunami.ccur.com \
--to=joe.korty@ccur.com \
--cc=Ronny.Lampert@telecasystems.de \
--cc=ioe-lkml@rameria.de \
--cc=linux-kernel@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
all inboxes | Powered by JetHome®