From: Trond Myklebust <Trond.Myklebust@netapp.com>
To: Neil Brown <neilb@suse.de>
Cc: linux-nfs@vger.kernel.org, NFSv4@linux-nfs.org
Subject: Re: NFS4ERR_FILE_OPEN handling in Linux
Date: Thu, 15 Oct 2009 08:53:24 -0400 [thread overview]
Message-ID: <1255611204.4317.19.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <19158.28240.964203.341327@notabene.brown>
On Thu, 2009-10-15 at 11:35 +1100, Neil Brown wrote:
> Hi Trond,
>
> Following up for a customer who had problem with NFSv4 when talking
> to a Solaris server with "nbman" enabled, I have questions about the
> handling of NFS4ERR_FILE_OPEN.
> In particular:
> 1/ should commit c514983d8d2260020543a81589a2b8c7d4bdab4e be
> reverted, and
> 2/ should nfs_errtbl map NFS4ERR_FILE_OPEN to -EBUSY rather than
> defaulting to -EIO
>
> That commit, included below for reference, causes the NFS client to
> retry indefinitely if NFS4ERR_FILE_OPEN is returned. This
> contradicts the comment which suggests it will only "retry a few
> times" and cannot be correct as a file could be held open (thus
> causing the error) indefinitely.
I'm unfortunately unfamiliar with 'nbman' on Solaris. Could you please
explain what it is, and why it should cause the nfs server to start
returning NFS4ERR_FILE_OPEN?
As far as I know, the purpose of the NFS4ERR_FILE_OPEN error was to
address the issue of MS Windows semantics, which do not allow certain
operations (mainly unlink() and rename()) on an open file. Since the
error is supposed to be transient (i.e. is caused by a lock) the current
behaviour was chosen in order to try to provide posix-like semantics in
these situations.
While we could change the behaviour to return -EBUSY, that might
conceivably break applications that expect to be able to create and
destroy temporary files. I therefore think that some attempt should be
made to wait and retry before we start returning application errors.
Cheers
Trond
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
next prev parent reply other threads:[~2009-10-15 12:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-15 0:35 NFS4ERR_FILE_OPEN handling in Linux Neil Brown
2009-10-15 12:53 ` Trond Myklebust [this message]
2009-10-15 20:57 ` NeilBrown
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=1255611204.4317.19.camel@heimdal.trondhjem.org \
--to=trond.myklebust@netapp.com \
--cc=NFSv4@linux-nfs.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
/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