Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp310160pxb; Thu, 21 Jan 2021 07:40:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJyfl6pKXrhvhgDJfSomwYN4YVW+3wzVWF3vsXArwY/uzbX2w9FvNnDXkTmhudwSNhMLB91e X-Received: by 2002:a50:bc15:: with SMTP id j21mr11453801edh.187.1611243606740; Thu, 21 Jan 2021 07:40:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611243606; cv=none; d=google.com; s=arc-20160816; b=UGvHtgJpvSZ3jT967Dx8voPW8snJ1Q4zyKT45C3DJzSNsnatX3+0g+FTEqj234PR+K mLVsZwmib3Sj+2NWxIcdtdTGmx7wnL8iZDxG7uH5cB5y/OuEpmDyB2GxavgtKy9c4nbT 6FEmRlZHeQYhb34xhI50xM1XIRCbZbBxf+GTlOyXg37sEfUaJHxDTgY+JJyzflg2unwW xcOipH6eIYmRMUMXrrlhw8EzYDhwWgUhkGhwjQ+w2jHBXb0kCECBt2jdiqKI17wGciwM SRM+/X3HWSAwwK3dm1xkbhFC+q2madflgWBA9ga0q2Ij2Ofhwu7qcAiAP22VZtCZzvua TJAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature:dkim-filter; bh=zYYBFnv46PLZedrNhXxBIzRuNZv8Kjh7QMOKWphno7Q=; b=lcjygrD/oTJADGqlw4nkVep3HMLt6RICKFq/4iKZ2qyPftbgV1Us0gGtgYTRLReu0o z48wVNLJ5/PW80HJQ2tOg1eSIOb7+STweU8ADn4UOW85lSxXoOzds/epZg8RmG4gU+Qp T/QzypEJEPl9VeqBvX/5t60CgbViQNAgGty9VDnclkTjsFdlLbqM0c5faPymN6mMh/Qu VBuliVwyOiILzV3paqWtd+NmZZBxUu2zWZb5bd3XL7S2opurEn9JyJ9vqBBPaXdsupWe 00KbO4bb8k3nPylGDYejri9NC8uo+eS5Wg3Cnbjddxk6bKuMCVpDmtjgCr5H4vOGUos7 ingg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b="Y3/W3IZ9"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k14si2395336edj.608.2021.01.21.07.39.36; Thu, 21 Jan 2021 07:40:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b="Y3/W3IZ9"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733131AbhAUPiL (ORCPT + 99 others); Thu, 21 Jan 2021 10:38:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733159AbhAUPhu (ORCPT ); Thu, 21 Jan 2021 10:37:50 -0500 Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A7427C061788 for ; Thu, 21 Jan 2021 07:37:10 -0800 (PST) Received: by fieldses.org (Postfix, from userid 2815) id 172956E97; Thu, 21 Jan 2021 10:37:09 -0500 (EST) DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 172956E97 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1611243429; bh=zYYBFnv46PLZedrNhXxBIzRuNZv8Kjh7QMOKWphno7Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Y3/W3IZ9QR6LA/qd1X6BCndohge538Wpk9t65iLWOHcrWOzLRm4sj7MZRo3Qkl18Q tc/lZRG7JUd8nxz7aDOdDY3ef/V3iC2CGchBT52lOf+fgWzGXnK7o46bBFqXlaafGp r4oCxOSfMGKFev38/2SHArb+LKnjEIH/j+ftd5IM= Date: Thu, 21 Jan 2021 10:37:09 -0500 From: "J. Bruce Fields" To: Benjamin Maynard Cc: linux-nfs@vger.kernel.org Subject: Re: Linux 5.11 Kernel: NFS re-export errors with older nfs-utils package versions Message-ID: <20210121153709.GA18310@fieldses.org> References: <20210119180204.GA24213@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Thu, Jan 21, 2021 at 11:21:56AM +0000, Benjamin Maynard wrote: > That is correct, there is an originating NFS Server (Ubuntu 20.04 - > 5.4.0-1034-gcp) that is exporting a directory from the local ext4 > filesystem. This is exported with the following options: > > /files 10.0.0.0/8(rw,no_subtree_check,fsid=10) > > This is then mounted from the re-exporting server (export from /proc/mounts): > > 10.70.1.2:/files /files nfs > rw,sync,noatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,acregmin=600,acregmax=600,acdirmin=600,acdirmax=600,hard,nocto,proto=tcp,nconnect=16,timeo=600,retrans=2,sec=sys,mountaddr=10.70.1.2,mountvers=3,mountport=20048,mountproto=udp,fsc,local_lock=none,addr=10.70.1.2 > 0 0 > > We then attempt to re-export the mounted directory from the > re-exporting server with the following entry in /etc/exports: > > /files 10.67.0.0/16(rw,wdelay,no_root_squash,no_subtree_check,fsid=10,sec=sys,rw,secure,no_root_squash,no_all_squash) > > If you perform this set of steps with the 5.10 kernel with nfs-utils > 1.3.4 (Ubuntu & Debian default version), the re-export will work. If > you perform the same set of steps with the ba5e8187c555 patch applied > (still on nfs-utils 1.3.4) then the re-export will fail with the error > message "exportfs: /files does not support NFS export". dmesg further > reveals the cause "check_export: nfs does not support subtree > checking!". > > This message appears even though we have no_subtree_check set on both > the exports of the originating NFS server, and the re-export server. > > If you then upgrade nfs-utils to 2.5.2 on the re-export server, the > re-export works as expected. Oh, got it, looks like the bug fixed by nfs-utils commit 63f520e8f6f5 "exportfs: Make sure pass all valid export flags to nfsd". Rough explanation: export information isn't normally passed down to the kernel when exportfs is called. Instead the kernel waits till it needs to know about some new client and/or filesystem and calls up to mountd to ask for the relevant export entry. Anyway, that's fine but it means the user doesn't find about errors right away. So, trying to be helpful, exportfs actually does pass down a dummy export to the kernel at exportfs time, just to check for errors like a typo'd export path or an unexportable filesystem. Before that fix, it passed down that dumy export without the "no_subtree_check" flag, even when you set that flag. So, for nfs reexport, you need an nfs-utils new enough to include that patch. We're normally pretty strict about kernel regressions: if something stopped working on kernel upgrade, that's a bug. But I think we really do need to fail attempts to re-export NFS with subtree checking, so we've got to make an exception here. Re-export is still a bit of an experimental feature, so there may be hiccups like this. --b.