From: "Shantanu Goel" <Shantanu.Goel@lehman.com>
To: nfs@lists.sourceforge.net
Subject: [NFS PATCH] 2.6.0-test10 Invalidate cached inode attributes after rename
Date: Wed, 26 Nov 2003 14:41:45 -0500 [thread overview]
Message-ID: <3FC501F9.1050306@lehman.com> (raw)
Hi Trond et al,
The following one line patch invalidates the attributes of the
underlying inode when a file is renamed. Some filesystems update ctime
upon rename(). One such filesystem is ext3, and a comment in the
relevant code there indicates this is true with other Unix filesystems
as well.
The following problem was observed on Fedora Core 1 running a stock
kernel.org 2.6.0-test10.
The server is running Solaris 2.8 but I have verified the same issue
exists with a server running Linix 2.4.22. These operations a done via
a Perl script.
1. Check out a CVS repository into an NFS mounted directory.
2. Move files from CVS working directory into another directory in the
same filesystem.
3. Tar up the resultant directory.
4. Tar prints lots of "file changed after we read it" messages.
Tar obtains ctime via stat() before reading the file and compares it to
the ctime obtained via fstat() after having read the file. The two
differ because the intervening open() forces an attribute refresh due to
CTO consistency at which time ctime is updated. Forcing a cache
invalidation during rename() eliminates this particular scenario.
Thanks,
Shantanu
--- 2.6.0-test10/fs/nfs/dir.c.~1~ 2003-10-17 17:43:11.000000000 -0400
+++ 2.6.0-test10/fs/nfs/dir.c 2003-11-26 12:42:27.000000000 -0500
@@ -1257,6 +1257,7 @@
nfs_zap_caches(new_dir);
nfs_zap_caches(old_dir);
+ NFS_CACHEINV(old_inode);
error = NFS_PROTO(old_dir)->rename(old_dir, &old_dentry->d_name,
new_dir, &new_dentry->d_name);
out:
------------------------------------------------------------------------------
This message is intended only for the personal and confidential use of the
designated recipient(s) named above. If you are not the intended recipient of
this message you are hereby notified that any review, dissemination,
distribution or copying of this message is strictly prohibited. This
communication is for information purposes only and should not be regarded as
an offer to sell or as a solicitation of an offer to buy any financial
product, an official confirmation of any transaction, or as an official
statement of Lehman Brothers. Email transmission cannot be guaranteed to be
secure or error-free. Therefore, we do not represent that this information is
complete or accurate and it should not be relied upon as such. All
information is subject to change without notice.
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next reply other threads:[~2003-11-26 19:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-26 19:41 Shantanu Goel [this message]
2003-12-04 0:42 ` [NFS PATCH] 2.6.0-test10 Invalidate cached inode attributes after rename Paul Smith
-- strict thread matches above, loose matches on Subject: below --
2003-12-04 4:25 Lever, Charles
2003-12-04 15:27 ` Shantanu Goel
2003-12-04 15:34 Lever, Charles
2003-12-04 17:20 ` Paul Smith
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=3FC501F9.1050306@lehman.com \
--to=shantanu.goel@lehman.com \
--cc=nfs@lists.sourceforge.net \
/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.