From: Ian Munsie <imunsie-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
"Cláudio Martins" <ctpm-s6mEjpzMaPUVhHzd4jOs4w@public.gmane.org>,
"Trond Myklebust" <trond.myklebust@netapp.com>,
linux-nfs <linux-nfs@vger.kernel.org>,
"Scott Romanowski" <romansc@us.ibm.com>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>
Subject: Re: NFS sillyrename side effect
Date: Tue, 19 Oct 2010 16:18:54 +1100 [thread overview]
Message-ID: <1287465288-sup-9227@au1.ibm.com> (raw)
In-Reply-To: <20101018101059.574b715a-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
Hi all,
Excerpts from Jeff Layton's message of Tue Oct 19 01:10:59 +1100 2010:
> See:
>
> http://nfs.sourceforge.net/
>
> ...section D2. The faq mentions that NFSv4 could do away with it
> because it's stateful, but that's not really the case either.
Thanks for the pointer.
> > It seems to me that if the sillyrename function is indeed necessary that
> > we should not reveal the temporary filename it produces to userspace,
> > but I wonder if that might create issues (say if userspace thinks a
> > directory is empty when it acutally has a sillyrename file in it)?
> >
> > Basically I want to know if the behaviour I've outlined below is
> > the expected behaviour of NFS, or if you considder this a bug?
> >
>
>
> It's expected. Sillyrenaming sucks, but there really is no great
> alternative to it. It's one of the prices we pay for having NFSv2/3 be
> stateless.
>
> I suppose in principle we could do things like hide silly-renamed
> dentries from userspace, but that might also be problematic. You'd
> still be unable to remove a directory that has a silly-renamed file in
> it, for instance even though it looks empty. There would also be
> inconsistencies as other machines and the server would still see
> the .nfsXXXXX files.
I had a feeling that would be the case.
> The bottom line is that you need to be really careful with programs
> that use delete-on-last-close when running on NFS.
Thanks to everyone who replied for clarifying this matter for me.
Cheers,
-Ian
prev parent reply other threads:[~2010-10-19 5:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-18 1:20 NFS sillyrename side effect Ian Munsie
2010-10-18 14:10 ` Jeff Layton
2010-10-18 14:48 ` Cláudio Martins
2010-10-18 14:53 ` Cláudio Martins
2010-10-18 15:01 ` Jeff Layton
[not found] ` <20101018110138.5f5001eb-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-10-18 15:44 ` Cláudio Martins
2010-10-18 16:21 ` Lyle Seaman
2010-10-18 17:00 ` Cláudio Martins
2010-10-18 17:10 ` J. Bruce Fields
2010-10-19 6:40 ` Benny Halevy
2010-10-19 13:32 ` Trond Myklebust
2010-10-21 17:50 ` Benny Halevy
2010-10-21 18:01 ` J. Bruce Fields
2010-10-21 18:28 ` Trond Myklebust
[not found] ` <20101018101059.574b715a-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-10-19 5:18 ` Ian Munsie [this message]
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=1287465288-sup-9227@au1.ibm.com \
--to=imunsie-8fk3idey6ehbdgjk7y7tuq@public.gmane.org \
--cc=benh@kernel.crashing.org \
--cc=bfields@fieldses.org \
--cc=ctpm-s6mEjpzMaPUVhHzd4jOs4w@public.gmane.org \
--cc=jlayton@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=romansc@us.ibm.com \
--cc=trond.myklebust@netapp.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.