From patchwork Tue May 10 09:23:36 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mi Jinlong X-Patchwork-Id: 773672 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p4A9Lhx3006108 for ; Tue, 10 May 2011 09:21:44 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752187Ab1EJJVc (ORCPT ); Tue, 10 May 2011 05:21:32 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:50471 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1752184Ab1EJJVa (ORCPT ); Tue, 10 May 2011 05:21:30 -0400 Received: from tang.cn.fujitsu.com (tang.cn.fujitsu.com [10.167.250.3]) by song.cn.fujitsu.com (Postfix) with ESMTP id 558C4170140; Tue, 10 May 2011 17:21:29 +0800 (CST) Received: from mailserver.fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id p4A9LPK3031786; Tue, 10 May 2011 17:21:27 +0800 Received: from [127.0.0.1] ([10.167.225.24]) by mailserver.fnst.cn.fujitsu.com (Lotus Domino Release 8.5.1FP4) with ESMTP id 2011051017214186-241468 ; Tue, 10 May 2011 17:21:41 +0800 Message-ID: <4DC90418.9040100@cn.fujitsu.com> Date: Tue, 10 May 2011 17:23:36 +0800 From: Mi Jinlong User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: "J. Bruce Fields" CC: NFS Subject: Re: [PATCH] nfsd41: Deny new lock before RECLAIM_COMPLETE done References: <4DB76D60.3010802@cn.fujitsu.com> <20110427135422.GA1618@fieldses.org> <4DC902B9.5060103@cn.fujitsu.com> In-Reply-To: <4DC902B9.5060103@cn.fujitsu.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.1FP4|July 25, 2010) at 2011-05-10 17:21:41, Serialize by Router on mailserver/fnst(Release 8.5.1FP4|July 25, 2010) at 2011-05-10 17:21:45, Serialize complete at 2011-05-10 17:21:45 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 10 May 2011 09:21:44 +0000 (UTC) Mi Jinlong : > Hi Bruce, > > Sorry for so late to reply you. > > J. Bruce Fields: >> On Wed, Apr 27, 2011 at 09:12:00AM +0800, Mi Jinlong wrote: >>> Before nfs41 client's RECLAIM_COMPLETE done, nfs server should >>> deny it's new lock. >>> >>> Signed-off-by: Mi Jinlong >> Is nfserr_grace the right error? (Honest question, I haven't looked it >> up.) > > Yes, rfc5661 says: > > " Whenever a client establishes a new client ID and before it does the > first non-reclaim operation that obtains a lock, it MUST send a > RECLAIM_COMPLETE with rca_one_fs set to FALSE, even if there are no > locks to reclaim. If non-reclaim locking operations are done before > the RECLAIM_COMPLETE, an NFS4ERR_GRACE error will be returned. " > >> Also I'd think this check should go in nfsd4_open: opens are also >> prohibited before RECLAIM_COMPLETE, and if we check there then we don't >> need to check here, as you have to have open state before you can do a >> lock. > > Agree with you, what about the following one?? After this patch, we should add a new patch to pynfs41 test site. Otherwise, the test site will walk out. ---- thanks Mi Jinlong From baa71190a279f6b35a919088d985482dedf06a71 Mon Sep 17 00:00:00 2001 From: Mi Jinlong Date: Tue, 10 May 2011 14:14:38 +0800 Subject: [PATCH] CLNT: Send RECLAIM_COMPLETE to server before do 'maketree' Signed-off-by: Mi Jinlong --- nfs4.1/server41tests/environment.py | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py index 4ce7a70..857b29f 100644 --- a/nfs4.1/server41tests/environment.py +++ b/nfs4.1/server41tests/environment.py @@ -157,6 +157,10 @@ class Environment(testmod.Environment): def _maketree(self, sess): """Make test tree""" + # RECLAIM_COMPLETE + res = sess.compound([op.reclaim_complete(FALSE)]) + check(res) + # ensure /tmp (and path leading up) exists path = [] for comp in self.opts.home: