From bc7736ea87166e99d6b4f57da84d26d007db8ae4 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Thu, 18 Feb 2010 06:41:11 -0500 Subject: [PATCH 1/1] mount: Set protocol family properly for "udp" and "tcp" In nfs_nfs_proto_family(), *family is never set if the legacy "udp" or "tcp" mount options are specified. The result is an error message at umount time, for example: umount.nfs: DNS resolution failed for 2001:5c0:1101:2f00:250:8dff:fe95:5c61: ai_family not supported even if mount was built with IPv6 support. The man page says that "udp" is a synonym for "proto=udp", and likewise for "tcp". Thus, we don't look at config_default_family here, but always use AF_INET explicitly, to be consistent with the meaning of proto=. Signed-off-by: Chuck Lever Reviewed-by: Jeff Layton Signed-off-by: Steve Dickson --- utils/mount/network.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/mount/network.c b/utils/mount/network.c index f020933..8dc183a 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -1373,8 +1373,9 @@ int nfs_nfs_proto_family(struct mount_options *options, switch (po_rightmost(options, nfs_transport_opttbl)) { case 0: /* udp */ - return 1; case 1: /* tcp */ + /* for compatibility; these are always AF_INET */ + *family = AF_INET; return 1; case 2: /* proto */ option = po_get(options, "proto"); -- 2.39.2