From: NeilBrown Subject: Fix fallback from tcp to udp References: bnc#863749 Protocol negotiation in mount.nfs does not correctly negotiate with a server which only support NFSv3 and UDP. When mount.nfs attempts an NFSv4 mount and fails with ECONNREFUSED it does not fall back to NFSv3, as this is not recognised as a "does not support NFSv4" error. However ECONNREFUSED is a clear indication that the server doesn't support TCP, and ipso facto does not support NFSv4. So ECONNREFUSED should trigger a fallback from v4 to v2/3. Once we allow that error, NFSv3 is attempted and mount.nfs talks to rpcbind and discovers that UDP should be used for v3 and the mount succeeds. Signed-off-by: NeilBrown Reported-by: Carsten Ziepke --- utils/mount/stropts.c | 3 +++ 1 file changed, 3 insertions(+) --- nfs-utils-1.2.8.orig/utils/mount/stropts.c +++ nfs-utils-1.2.8/utils/mount/stropts.c @@ -807,6 +807,9 @@ static int nfs_autonegotiate(struct nfsm /* Linux servers prior to 2.6.25 may return * EPERM when NFS version 4 is not supported. */ goto fall_back; + case ECONNREFUSED: + /* UDP-Only server won't support v4 */ + goto fall_back; default: return result; }