From patchwork Wed May 18 11:55:37 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Myers X-Patchwork-Id: 794612 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 p4IIYdJB007160 for ; Wed, 18 May 2011 18:34:39 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933459Ab1ERSei (ORCPT ); Wed, 18 May 2011 14:34:38 -0400 Received: from relay3.sgi.com ([192.48.152.1]:58971 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933451Ab1ERSeh (ORCPT ); Wed, 18 May 2011 14:34:37 -0400 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9D6ABAC001; Wed, 18 May 2011 11:34:36 -0700 (PDT) Received: from nfs3.americas.sgi.com (nfs3.americas.sgi.com [128.162.245.55]) by estes.americas.sgi.com (Postfix) with ESMTP id 479AE700178A; Wed, 18 May 2011 13:34:36 -0500 (CDT) Received: from [10.79.0.3] (localhost [IPv6:::1]) by nfs3.americas.sgi.com (Postfix) with ESMTP id BB276953C4; Wed, 18 May 2011 06:55:37 -0500 (CDT) Subject: [PATCH v2] nfs-utils: getexportent interprets -test-client- as default options To: steved@redhat.com From: Ben Myers Cc: neilb@suse.de, linux-nfs@vger.kernel.org Date: Wed, 18 May 2011 06:55:37 -0500 Message-ID: <20110518115537.8725.44754.stgit@nfs3> In-Reply-To: <4DD14CE9.1070301@RedHat.com> References: <4DD14CE9.1070301@RedHat.com> User-Agent: StGit/0.15 MIME-Version: 1.0 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]); Wed, 18 May 2011 18:34:39 +0000 (UTC) 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 to process existing 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 that problem (as Steve suggested) by not processing any default options if we are reading the list of existing exports from the kernel. Default options are converted to individual exports by exportfs so the kernel won't have any regardless. Signed-off-by: Ben Myers --- support/nfs/exports.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) -- 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..c250383 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -142,9 +142,14 @@ getexportent(int fromkernel, int fromexports) return NULL; } first = 0; - - /* Check for default options */ - if (exp[0] == '-') { + + /* + * Check for default options. The kernel will never have default + * options in /proc/fs/nfs/exports, however due to the initial '-' in + * the -test-client- string from the test export we have to check that + * we're not reading from the kernel. + */ + if (exp[0] == '-' && !fromkernel) { if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0) return NULL;