From: Hans-Peter Jansen <hpj@urpla.net>
To: trond.myklebust@fys.uio.no
Cc: linux-kernel@vger.kernel.org
Subject: Re: [NFS] some strangeness (at least) with linux-2.4.17-NFS_ALL patch
Date: Fri, 11 Jan 2002 20:17:26 +0100 [thread overview]
Message-ID: <20020111191744.7A9CE1426@shrek.lisa.de> (raw)
In-Reply-To: <20020111131528.44F8613E6@shrek.lisa.de> <15422.65459.871735.203004@charged.uio.no>
In-Reply-To: <15422.65459.871735.203004@charged.uio.no>
On Friday, 11. January 2002 16:07, Trond Myklebust wrote:
> >>>>> " " == Hans-Peter Jansen <hpj@urpla.net> writes:
> > The problem is, ls on the client side complains about an I/O
> > error, when listing the conf/ dir.
>
> What server is this?
Oups, sorry:
Linux shrek 2.4.13-ac7 #6 SMP Son Dez 2 20:02:04 CET 2001 i686 unknown
(on patches, IIRC)
>
> > After removing this symlink (within the server), ls is OK
> > within the client. Trying to copy servers /etc/ou.conf file to
> > /usr/share/openuniverse within the client, cp complains about
Oups, correction: /usr/share/openuniverse/conf
> > to many levels of symlinks?!? (/usr is shared)
>
> That can happen, yes. The symlink is still in the dcache, and so the
> VFS thinks that we want to open whatever it is that the symlink is
> pointing to (not the symlink itself). For this reason, less strict
> checking is performed, and so the client does not immediately see the
> change.
Shouldn't the client invalidate the dcache entry some time?
Now, 5 hours later, the dcache entry isn't invalidated, yet.
I think, this is a thinko. I'm not familiar with nfs internals,
but have done stuff like this before (anybody remember BioNet?).
Please try this:
shrek is the server, elfe the client
/raid is shared (reiserfs, no raid), /tmp isn't
shrek:/raid/tmp# touch /tmp/huhu
shrek:/raid/tmp# ln -s /tmp/huhu
shrek:/raid/tmp# l
total 1
drwxr-xr-x 2 root root 55 Jan 11 20:07 ./
drwxr-xr-x 9 root root 218 Jan 11 20:06 ../
lrwxrwxrwx 1 root root 9 Jan 11 20:07 huhu -> /tmp/huhu
elfe:/raid/tmp# echo "huhu" > /tmp/huhu
elfe:/raid/tmp# l
insgesamt 1
drwxr-xr-x 2 root root 55 11. Jan 20:07 ./
drwxr-xr-x 9 root root 218 11. Jan 20:06 ../
lrwxrwxrwx 1 root root 9 11. Jan 20:07 huhu -> /tmp/huhu
elfe:/raid/tmp# cat huhu
huhu
shrek:/raid/tmp# rm huhu
elfe:/raid/tmp# l
insgesamt 1
drwxr-xr-x 2 root root 35 11. Jan 20:07 ./
drwxr-xr-x 9 root root 218 11. Jan 20:06 ../
elfe:/raid/tmp# touch huhu
elfe:/raid/tmp# l
ls: huhu: Eingabe-/Ausgabefehler
insgesamt 1
drwxr-xr-x 2 root root 55 11. Jan 20:08 ./
drwxr-xr-x 9 root root 218 11. Jan 20:06 ../
Pretty simple. Can you reproduce this?
> If, however, you had first done 'ls -l' or something that tries to
> read the symlink itself, more strict revalidation checks are
> performed, and the stale dentry would have been detected.
Not sure.
> I can tighten the checks on this sort of thing a bit, but if so, it
> needs to be done carefully. It is important to make sure that
> operations like
> 'ls /usr/lib/*'
> (in which you want the system to repeatedly look up the same path) are
> efficient by caching the '/usr/lib' bit even if that /usr/lib is a
> symlink.
> Of course every time we do open("/usr/lib/libc.so"), we *do* want to
> make sure that we perform strict checks when we do the lookup of the
> last element of the path (on the actual file "libc.so").
>
> Cheers,
> Trond
Thank for your patience,
Hans-Peter
next prev parent reply other threads:[~2002-01-11 19:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-11 13:15 Hans-Peter Jansen
2002-01-11 15:07 ` Trond Myklebust
2002-01-11 19:17 ` Hans-Peter Jansen [this message]
2002-01-12 2:24 ` Trond Myklebust
2002-01-12 17:01 ` [NFS] some strangeness (at least) with linux-2.4.18-NFS_ALL patch Hans-Peter Jansen
2002-01-12 18:47 ` Trond Myklebust
2002-01-12 22:40 ` Hans-Peter Jansen
2002-01-13 12:37 ` Trond Myklebust
2002-01-12 2:04 ` [NFS] some strangeness (at least) with linux-2.4.17-NFS_ALL patch 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=20020111191744.7A9CE1426@shrek.lisa.de \
--to=hpj@urpla.net \
--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®