From patchwork Mon May 16 16:12:25 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Dickson X-Patchwork-Id: 788542 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4GGCUMM007466 for ; Mon, 16 May 2011 16:12:31 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756547Ab1EPQMa (ORCPT ); Mon, 16 May 2011 12:12:30 -0400 Received: from mx1.redhat.com ([209.132.183.28]:7816 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756537Ab1EPQM3 (ORCPT ); Mon, 16 May 2011 12:12:29 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p4GGCQwA010312 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 16 May 2011 12:12:26 -0400 Received: from badhat.bos.devel.redhat.com (vpn-11-228.rdu.redhat.com [10.11.11.228]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p4GGCPj3027324; Mon, 16 May 2011 12:12:25 -0400 Message-ID: <4DD14CE9.1070301@RedHat.com> Date: Mon, 16 May 2011 12:12:25 -0400 From: Steve Dickson User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b3pre Thunderbird/3.1.10 MIME-Version: 1.0 To: Ben Myers CC: neilb@suse.de, linux-nfs@vger.kernel.org Subject: Re: [PATCH] nfs-utils: getexportent interprets -test-client- as default options References: <20110512131810.25028.50931.stgit@nfs3> In-Reply-To: <20110512131810.25028.50931.stgit@nfs3> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 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 (demeter2.kernel.org [140.211.167.43]); Mon, 16 May 2011 16:12:31 +0000 (UTC) On 05/12/2011 09:18 AM, Ben Myers wrote: > With commit 1374c3861abdc66f3a1410e26cc85f86760b51dd Neil added a -test-client- > export to test the exportability of filesystems when exportfs is run. When > using the old cache controls (i.e. /proc/fs/nfsd is not mounted) exportfs will > read /proc/fs/nfs/exports and find these test client entries. The dash at the > beginning of -test-client- will be cause getexportent to look for default > options in the rest of the string, which test-client- will not match: > > exportfs: /proc/fs/nfs/exports:1: unknown keyword "test-client-(rw" > > This patch resolves the problem by testing for -test-client- string in the > check for default arguments. > > Signed-off-by: Ben Myers > --- > support/nfs/exports.c | 9 ++++++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/support/nfs/exports.c b/support/nfs/exports.c > index 6acb2b6..7e29155 100644 > --- a/support/nfs/exports.c > +++ b/support/nfs/exports.c > @@ -142,9 +142,12 @@ getexportent(int fromkernel, int fromexports) > return NULL; > } > first = 0; > - > - /* Check for default options */ > - if (exp[0] == '-') { > + > + /* > + * Check for default options. The test client string does not indicate > + * default arguments. > + */ > + if (exp[0] == '-' && strncmp(exp, "-test-client-", 13) != 0) { > if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0) > return NULL; If I'm understanding you correctly, when using the old cache controls and when processing exports that are already exported (exports that are in /proc/fs/nfs/exports) will cause this problem. If this indeed is the case, I think it's a bit cleaner if we use the 'fromkernel' argument to decide if the '-' options should or should not be processed. Something like: steved. --- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 6acb2b6..e4e9375 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -144,7 +144,7 @@ getexportent(int fromkernel, int fromexports) first = 0; /* Check for default options */ - if (exp[0] == '-') { + if (exp[0] == '-' && !fromkernel) { if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0) return NULL;