From: Mi Jinlong <mijinlong@cn.fujitsu.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Fred Isaman <iisaman@netapp.com>,
"J. Bruce Fields" <bfields@redhat.com>,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH 3/3] nfsd4: implement secinfo_no_name
Date: Thu, 06 Jan 2011 11:54:02 +0800 [thread overview]
Message-ID: <4D253CDA.30605@cn.fujitsu.com> (raw)
In-Reply-To: <20110105172916.GD13000@fieldses.org>
J. Bruce Fields 写道:
> On Wed, Jan 05, 2011 at 10:37:13AM -0500, J. Bruce Fields wrote:
>> On Wed, Jan 05, 2011 at 10:15:11AM -0500, Fred Isaman wrote:
>>> On Tue, Jan 4, 2011 at 8:05 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
>>>> On Thu, Dec 30, 2010 at 12:13:27PM +0800, Mi Jinlong wrote:
>>>>>
>>>>> J. Bruce Fields:
>>>>>> On Mon, Dec 27, 2010 at 02:29:57PM +0800, Mi Jinlong wrote:
>>>>>>> When testing this patch, oops appears.
>>>>>>>
>>>>>>> We should implement a nfsd4_encode_secinfo_no_name() instead using
>>>>>>> nfsd4_encode_secinfo().
>>>>>>>
>>>>>>> With the following patch, kernel will run correctly.
>>>>>> Whoops, yes, you're correct. I've applied your patch. Thanks!
>>>>>>
>>>>>> (What are you using for testing?)
>>>>> Hi Bruce:
>>>>>
>>>>> I test it by the pynfs41 at your tree, and add some simple
>>>>> test case as following.
>>>>>
>>>>> I have a question about the op.secinfo_no_name(), should it take
>>>>> a argument?
>>>>> Right now, maybe it always request with NFS4_SECINFO_STYLE4_CURRENT_FH,
>>>>> or I can't find how to set the argument.
>>> There was a bug in how the op.secinfo_no_name() function was auto
>>> constructed. I've pushed a fix to
>>> my tree at git://linux-nfs.org/~iisaman/newpynfs.git.
>> Thanks, Fred. I've pulled that into my repository too.
>
> But then these secinfo_no_name tests don't work ("TypeError:
> data.opsecinfo_no_name == None"); Mi Jinlong, would you mind looking
> into that?
After Fred's patch, we should rebuild the test site at pynfs41 dir
with "python setup.py build".
And update test case, call op.secinfo_no_name() with 0 as following.
thanks,
Mi Jinlong
>From 344f0ee9a625d43b918be5dfc4fc9df8e8cbac28 Mon Sep 17 00:00:00 2001
From: Mi Jinlong <mijinlong@cn.fujitsu.com>
Date: Thu, 30 Dec 2010 12:13:27 +0800
Subject: [PATCH] CLNT: Add some simple secinfo_no_name tests
Add two simple secinfo_no_name tests as Bruce said:
- send PUTROOTFH+SECINFO_NO_NAME, check that you get back a
legal result.
- send PUTROOTFH+SECINFO+GETFH, and/or
PUTROOTFH+SECINFO_NO_NAME+GETFH, check that the GETFH returns
NOFILEHANDLE.
Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
---
nfs4.1/server41tests/__init__.py | 1 +
nfs4.1/server41tests/st_secinfo_no_name.py | 35 ++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)
create mode 100644 nfs4.1/server41tests/st_secinfo_no_name.py
diff --git a/nfs4.1/server41tests/__init__.py b/nfs4.1/server41tests/__init__.py
index 22cd664..6aee88e 100644
--- a/nfs4.1/server41tests/__init__.py
+++ b/nfs4.1/server41tests/__init__.py
@@ -2,6 +2,7 @@ __all__ = ["st_exchange_id.py", # draft 21
"st_compound.py",
"st_create_session.py",
"st_destroy_session.py",
+ "st_secinfo_no_name.py",
"st_sequence.py",
"st_trunking.py",
"st_open.py",
diff --git a/nfs4.1/server41tests/st_secinfo_no_name.py b/nfs4.1/server41tests/st_secinfo_no_name.py
new file mode 100644
index 0000000..b66fdb6
--- /dev/null
+++ b/nfs4.1/server41tests/st_secinfo_no_name.py
@@ -0,0 +1,35 @@
+from st_create_session import create_session
+from nfs4_const import *
+from environment import check, fail, bad_sessionid, create_file
+from nfs4_type import channel_attrs4
+import nfs4_ops as op
+import nfs4lib
+
+def testSupported(t, env):
+ """Do a simple SECINFO_NO_NAME
+ send PUTROOTFH+SECINFO_NO_NAME, check is result legal
+
+ FLAGS: all
+ CODE: SECNN1
+ """
+ c = env.c1.new_client(env.testname(t))
+ sess = c.create_session()
+ res = sess.compound([op.putrootfh(), op.secinfo_no_name(0)])
+ check(res);
+
+def testSupported2(t, env):
+ """GETFH after do a SECINFO_NO_NAME or SECINFO
+ result in a NOFILEHANDLE error, See rfc 5661 section 2.6.3.1.1.8
+
+ FLAGS: all
+ CODE: SECNN2
+ """
+ c = env.c1.new_client(env.testname(t))
+ sess = c.create_session()
+ res = sess.compound([op.putrootfh(), op.secinfo_no_name(0), op.getfh()])
+ print res
+ check(res, NFS4ERR_NOFILEHANDLE);
+
+ res = sess.compound([op.putrootfh(), op.secinfo("tree"), op.getfh()])
+ print res
+ check(res, NFS4ERR_NOFILEHANDLE);
--
1.7.3.4
next prev parent reply other threads:[~2011-01-06 3:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-17 19:01 4.1 secinfo patches J. Bruce Fields
2010-12-17 19:01 ` [PATCH 1/3] nfsd4: 4.1 SECINFO should consume filehandle J. Bruce Fields
2010-12-17 19:01 ` [PATCH 2/3] nfsd4: move guts of nfsd4_lookupp into helper J. Bruce Fields
2010-12-17 19:01 ` [PATCH 3/3] nfsd4: implement secinfo_no_name J. Bruce Fields
2010-12-27 6:29 ` Mi Jinlong
2010-12-29 18:56 ` J. Bruce Fields
2010-12-30 4:13 ` Mi Jinlong
2011-01-05 1:05 ` J. Bruce Fields
2011-01-05 15:15 ` Fred Isaman
2011-01-05 15:37 ` J. Bruce Fields
2011-01-05 17:29 ` J. Bruce Fields
2011-01-06 3:54 ` Mi Jinlong [this message]
2011-01-11 23:32 ` J. Bruce Fields
2011-01-13 3:20 ` Mi Jinlong
2011-01-18 22:59 ` J. Bruce Fields
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=4D253CDA.30605@cn.fujitsu.com \
--to=mijinlong@cn.fujitsu.com \
--cc=bfields@fieldses.org \
--cc=bfields@redhat.com \
--cc=iisaman@netapp.com \
--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 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.