Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3249560yba; Sat, 11 May 2019 06:59:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqz/Sb5W6p8l8bYW0S2+3mX1kT/+BRVFP8cBjZ6TNyjkzHMmMz3+PCG+6lcV69Db1PdW6XK/ X-Received: by 2002:a17:902:8a83:: with SMTP id p3mr20319978plo.88.1557583147348; Sat, 11 May 2019 06:59:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557583147; cv=none; d=google.com; s=arc-20160816; b=GFaNViKWlyF/Ko5dOmvheXsZDS+ZDI9Bh7YD3DnpogihFaO7xIDFjDaHxk1U9sBh2L dYlN5mz5zRtRecHjyYY8tnjVqAdNY+nVc4bBGr+YXZg3fSDU4zvcvpeHEj4CYr387MRn XQNpo6WAkT+x78g5LPPrWqZSNnTjANAip3oNQS19Al3UCGG+mGLPlZAX94OfptWHqIzM XLw7GtLO3DDt9Y++NrmJdHNjaiBwHMf4+Q+KCYFKYkMM72dtonPae9kxwX787W6BjN4n CJLSwpefz/HjRyD7251W2ENFlXM91T79yW+B44TVMVx6J6XaCfGhxQSMHGh2x4SetHFa MNHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:from:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:date; bh=HDbUcl2vAnpDKjukI6ilzTfw+GKFXwb8db1jd/WTRpM=; b=YBVDqxEokDkX9r0rYRhBtxVl1cRd1Q5jMXs6bbRMGSAJGpEhrPb4+/6HqtozSQQSda KyBuGE8egIeonPirlNikG+a1TRX/h/VYL/oa3tpZMDg/EGEMcCncci606n/kcMDV4JEA 30KT9NyRwhjsB8JTaSHxg5nRh9c49VmaR1LNqMpUwqTdgRuIYl0gRtCDkV5uTAn7Vl/I fon94b6dLuRDxnnfmz1Q77kREBs140y0tq4sXD3FNko3WoP8VedlpKaJfJtdGNGIOceN qPUs1GBLHmiL8c/S07CWPe5iGt6CnRjE75c52LO8G9lT6kUsawRhB4IeIaT9a0g5k+KZ Cz/g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w207si3417437pff.69.2019.05.11.06.58.40; Sat, 11 May 2019 06:59:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726259AbfEKNyn (ORCPT + 99 others); Sat, 11 May 2019 09:54:43 -0400 Received: from fieldses.org ([173.255.197.46]:56178 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726240AbfEKNyn (ORCPT ); Sat, 11 May 2019 09:54:43 -0400 Received: by fieldses.org (Postfix, from userid 2815) id 83CA61DCB; Sat, 11 May 2019 09:54:42 -0400 (EDT) Date: Sat, 11 May 2019 09:54:42 -0400 To: Jeff Layton Cc: steved@redhat.com, linux-nfs@vger.kernel.org, jfajerski@suse.com Subject: Re: [PATCH] manpage: explain why showmount doesn't really work against a v4-only server Message-ID: <20190511135442.GA15721@fieldses.org> References: <20190510215445.1823-1-jlayton@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190510215445.1823-1-jlayton@kernel.org> User-Agent: Mutt/1.5.21 (2010-09-15) From: bfields@fieldses.org (J. Bruce Fields) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Fri, May 10, 2019 at 05:54:45PM -0400, Jeff Layton wrote: > From: Jeff Layton > > I occasionally see people that expect valid info when running showmount > against a server that may export some or all filesystems via NFSv4. > Let's make it clear that it only works by talking to the remote MNT > service, and that that may not be available from a v4-only server. Looks fine. I wonder if it'd also be helpful for showmount to detect this case and say something. E.g. the following (not even compileable, but you get the idea). We've also talked about trying to cobble together an export list by scanning the root filesystem over NFSv4, but that's likely to be complicated and wouldn't give all the same results without further protocol extensions anyway, so I think that idea's dead. --b. diff --git a/utils/showmount/showmount.c b/utils/showmount/showmount.c index 394f5284a219..de9a6d38783a 100644 --- a/utils/showmount/showmount.c +++ b/utils/showmount/showmount.c @@ -115,6 +115,22 @@ static CLIENT *nfs_get_mount_client(const char *hostname, rpcvers_t vers) exit(1); } +void warn_if_v4_only(char *hostname) +{ + struct sockaddr_in server_addr, client_addr; + + if (fill_ipv4_sockaddr(hostname, &serveraddr)) + return; + server_addr.sin_port = htnos(NFS_PORT); + client_addr.sin_family = 0; + client_addr.sin_addr.s_addr = 0; + clnt_ping(&server_addr, NFS_PROGRAM, 4, "tcp", &client_addr); + + if (rpc.createerr == RPC_SUCCESS) + printf("Server responding to NFSv4 but not MNT; try mounting " + "%s:/ instead of showmount", hostname); +} + int main(int argc, char **argv) { char hostname_buf[MAXHOSTLEN]; @@ -199,6 +215,7 @@ int main(int argc, char **argv) fprintf(stderr, "%s: unable to create RPC auth handle.\n", program_name); clnt_destroy(mclient); + warn_if_v4_only(hostname); exit(1); } total_timeout.tv_sec = TOTAL_TIMEOUT;