From: "J. Bruce Fields" <bfields@fieldses.org>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 5/6] nfsd: take struct file setup fully into nfs4_preprocess_stateid_op
Date: Wed, 29 Apr 2015 10:16:13 -0400 [thread overview]
Message-ID: <20150429141613.GA16016@fieldses.org> (raw)
In-Reply-To: <20150429131148.GA3381@lst.de>
On Wed, Apr 29, 2015 at 03:11:48PM +0200, Christoph Hellwig wrote:
> On Tue, Apr 28, 2015 at 04:44:55PM -0400, J. Bruce Fields wrote:
> > This causes a failure on pynfs OPEN23b.
>
> I've once again tried to run pynfs, but I'm still errors out with weird
> python backtraces for any of the examples from the readme I copy
> and pasted, e.g.:
>
> root@vm:~/pynfs/nfs4.0# ./testserver.py 127.0.0.1:/mnt/test --maketree all
> Initialization failed, no tests run.
> Traceback (most recent call last):
> File "./testserver.py", line 379, in <module>
> main()
> File "./testserver.py", line 342, in main
> env.init()
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 140, in init
> self._maketree()
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 159, in _maketree
> "Could not LOOKUP /%s," % '/'.join(path))
> File "/root/pynfs/nfs4.0/servertests/environment.py", line 274, in checklist
> raise testmod.FailureException(msg)
> testmod.FailureException: Could not LOOKUP /mnt, should return NFS4_OK or NFS4ERR_NOENT, instead got NFS4ERR_PERM
You probably just need to add "insecure" to the export.
(Every now and then we talk about changing that default. The security
model there assumed you have untrusted users, but trusted root on every
machine on your network. So the fact that a connection came from a low
port was enough to trust it. That assumption seems fragile. I don't
know if it's still a common setup.)
> > It's doing a READ using a stateid from a write open. We previously
> > returned NFS_OK, taking the "may" option from:
> >
> > http://tools.ietf.org/html/rfc7530#page-111
> >
> > In the case of READ, the server may perform the corresponding
> > check on the access mode, or it may choose to allow READ on
> > opens for WRITE only, to accommodate clients whose write
> > implementation may unavoidably do reads (e.g., due to buffer
> > cache constraints).
> >
> > OPENMODE might also have been OK, but we're returning SERVERFAULT. I
> > guess the old code was passing preprocess_stateid_op without returning a
> > file, then relying on a temporary open for the read? Ugh.
>
> Looks like it. I can change it to return an OPENMODE, or we could
> make it fall back to a temp read open.
I don't know if anyone actually behaves as described in the spec, but
for now I'd rather be conservative and keep the old behavior. (So, yes,
fall back on a temporary read open.)
--b.
next prev parent reply other threads:[~2015-04-29 14:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-28 13:41 refactor stateid checking and file allocation Christoph Hellwig
2015-04-28 13:41 ` [PATCH 1/6] nfsd: fix the check for confirmed openowner in nfs4_preprocess_stateid_op Christoph Hellwig
2015-04-28 19:12 ` J. Bruce Fields
2015-04-28 13:41 ` [PATCH 2/6] nfsd: remove nfsd_close Christoph Hellwig
2015-04-28 13:41 ` [PATCH 3/6] nfsd: refactor nfs4_preprocess_stateid_op Christoph Hellwig
2015-04-28 13:41 ` [PATCH 4/6] nfsd: clean up raparams handling Christoph Hellwig
2015-04-28 13:41 ` [PATCH 5/6] nfsd: take struct file setup fully into nfs4_preprocess_stateid_op Christoph Hellwig
2015-04-28 20:44 ` J. Bruce Fields
2015-04-28 20:50 ` J. Bruce Fields
2015-04-29 13:11 ` Christoph Hellwig
2015-04-29 14:16 ` J. Bruce Fields [this message]
2015-04-28 13:41 ` [PATCH 6/6] nfsd: drop the file argument to nfsd_write Christoph Hellwig
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=20150429141613.GA16016@fieldses.org \
--to=bfields@fieldses.org \
--cc=hch@lst.de \
--cc=linux-nfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).