From: Chuck Lever Date: Thu, 18 Feb 2010 11:41:11 +0000 (-0500) Subject: mount: Set protocol family properly for "udp" and "tcp" X-Git-Tag: nfs-utils-1-2-2~1 X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=bc7736ea87166e99d6b4f57da84d26d007db8ae4;p=nfs-utils.git 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 --- 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");