From: Peter Staubach <staubach@redhat.com>
To: "Lever, Charles" <Charles.Lever@netapp.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>,
Vince Busam <vbusam@google.com>,
nfs@lists.sourceforge.net
Subject: Re: mtime not updated in client cache?
Date: Fri, 09 Dec 2005 11:40:02 -0500 [thread overview]
Message-ID: <4399B362.40601@redhat.com> (raw)
In-Reply-To: <044B81DE141D7443BCE91E8F44B3C1E201332862@exsvl02.hq.netapp.com>
Lever, Charles wrote:
>
>i like the idea.
>
>do you need to prevent writes *during* the stat() call? or do you just
>want to make sure that any writes that happened *before* the stat() call
>have the intended side-effects on the file size and mtime? that might
>be worth a comment or two.
>
>
>
The semantic is generally that any write(2) calls made before the
stat(2) call
should be reflected in the update mtime.
>are you flushing dirty mmap'd data too? or can this be skipped until
>msync() time?
>
>and now that you have added a "flush but don't commit" flag to
>nfs_sync_file, maybe we might consider using that (optionally) at file
>close() time, like some other NFS client implementations do. :^)
>
>
This seems like a pretty dangerous thing to do. I've thought about it
because it would seem to make close-to-open less expensive, but it
introduces
the possibility of data loss without the application being aware. If the
data is not committed at close(2), then if it can not be committed when it
needs to be committed, then there is no way to return an error to the
application. A somewat contrived but still possible scenario is that the
server crashes, comes back up, and the file system fills up before the
client
can retransmit all of the data. In this case, the data will be lost, but
the application thought that it was all stored because no system calls
returned any errors.
Thanx...
ps
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next prev parent reply other threads:[~2005-12-09 16:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-09 15:56 mtime not updated in client cache? Lever, Charles
2005-12-09 16:10 ` Trond Myklebust
2005-12-09 16:40 ` Peter Staubach [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-12-09 19:07 Lever, Charles
2005-12-09 19:20 ` Peter Staubach
2005-12-09 19:55 ` Roger Heflin
2005-12-09 21:05 ` Peter Staubach
2005-11-29 0:09 Vince Busam
2005-11-29 0:45 ` Trond Myklebust
2005-12-01 1:06 ` Vince Busam
2005-12-01 1:15 ` Trond Myklebust
2005-12-08 1:22 ` Vince Busam
2005-12-08 3:38 ` Trond Myklebust
2005-12-09 14:06 ` Peter Staubach
2005-12-09 14:16 ` Trond Myklebust
2005-12-09 14:24 ` Peter Staubach
2005-12-09 15:19 ` Trond Myklebust
2005-12-13 1:51 ` Vince Busam
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=4399B362.40601@redhat.com \
--to=staubach@redhat.com \
--cc=Charles.Lever@netapp.com \
--cc=nfs@lists.sourceforge.net \
--cc=trond.myklebust@fys.uio.no \
--cc=vbusam@google.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.