You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
diff -up nfs-utils-1.3.0/utils/mount/stropts.c.orig nfs-utils-1.3.0/utils/mount/stropts.c |
|
--- nfs-utils-1.3.0/utils/mount/stropts.c.orig 2014-03-25 11:12:07.000000000 -0400 |
|
+++ nfs-utils-1.3.0/utils/mount/stropts.c 2016-04-28 11:18:25.876793000 -0400 |
|
@@ -352,13 +352,26 @@ static int nfs_validate_options(struct n |
|
if (!nfs_nfs_proto_family(mi->options, &family)) |
|
return 0; |
|
|
|
- hint.ai_family = (int)family; |
|
- error = getaddrinfo(mi->hostname, NULL, &hint, &mi->address); |
|
- if (error != 0) { |
|
- nfs_error(_("%s: Failed to resolve server %s: %s"), |
|
- progname, mi->hostname, gai_strerror(error)); |
|
- mi->address = NULL; |
|
- return 0; |
|
+ /* |
|
+ * A remount is not going to be able to change the server's address, |
|
+ * nor should we try to resolve another address for the server as we |
|
+ * may end up with a different address. |
|
+ */ |
|
+ if (mi->flags & MS_REMOUNT) { |
|
+ po_remove_all(mi->options, "addr"); |
|
+ } else { |
|
+ hint.ai_family = (int)family; |
|
+ error = getaddrinfo(mi->hostname, NULL, &hint, &mi->address); |
|
+ if (error != 0) { |
|
+ nfs_error(_("%s: Failed to resolve server %s: %s"), |
|
+ progname, mi->hostname, gai_strerror(error)); |
|
+ mi->address = NULL; |
|
+ return 0; |
|
+ } |
|
+ |
|
+ if (!nfs_append_addr_option(mi->address->ai_addr, |
|
+ mi->address->ai_addrlen, mi->options)) |
|
+ return 0; |
|
} |
|
|
|
if (!nfs_set_version(mi)) |
|
@@ -367,10 +380,6 @@ static int nfs_validate_options(struct n |
|
if (!nfs_append_sloppy_option(mi->options)) |
|
return 0; |
|
|
|
- if (!nfs_append_addr_option(mi->address->ai_addr, |
|
- mi->address->ai_addrlen, mi->options)) |
|
- return 0; |
|
- |
|
return 1; |
|
} |
|
|
|
|