diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2008-03-14 14:10:22 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-19 18:00:19 -0400 |
commit | f22d6d79fe227245363a8849ea8c85fe6c6598c3 (patch) | |
tree | 5496ddd3e912a399e0be9a7116fc1a66d6c79a10 /fs/nfs/client.c | |
parent | 78fa701f341564e60461de91cd08ff5f7fb09b31 (diff) |
NFS: Save the value of the "port=" mount option
During a remount based on the mount options displayed in /proc/mounts, we
want to preserve the original behavior of the mount request. Let's save
the original setting of the "port=" mount option in the mount's nfs_server
structure.
This allows us to simplify the default behavior of port setting for NFSv4
mounts: by default, NFSv2/3 mounts first try an RPC bind to determine the
NFS server's port, unless the user specified the "port=" mount option;
Users can force the client to skip the RPC bind by explicitly specifying
"port=<value>".
NFSv4, by contrast, assumes the NFS server port is 2049 and skips the RPC
bind, unless the user specifies "port=". Users can force an RPC bind for
NFSv4 by explicitly specifying "port=0".
I added a couple of extra comments to clarify this behavior.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r-- | fs/nfs/client.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 06f064d8fbbe..874018113d0e 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -682,6 +682,8 @@ static int nfs_init_server(struct nfs_server *server, | |||
682 | if (error < 0) | 682 | if (error < 0) |
683 | goto error; | 683 | goto error; |
684 | 684 | ||
685 | server->port = data->nfs_server.port; | ||
686 | |||
685 | error = nfs_init_server_rpcclient(server, &timeparms, data->auth_flavors[0]); | 687 | error = nfs_init_server_rpcclient(server, &timeparms, data->auth_flavors[0]); |
686 | if (error < 0) | 688 | if (error < 0) |
687 | goto error; | 689 | goto error; |
@@ -1064,6 +1066,8 @@ static int nfs4_init_server(struct nfs_server *server, | |||
1064 | server->acdirmin = data->acdirmin * HZ; | 1066 | server->acdirmin = data->acdirmin * HZ; |
1065 | server->acdirmax = data->acdirmax * HZ; | 1067 | server->acdirmax = data->acdirmax * HZ; |
1066 | 1068 | ||
1069 | server->port = data->nfs_server.port; | ||
1070 | |||
1067 | error = nfs_init_server_rpcclient(server, &timeparms, data->auth_flavors[0]); | 1071 | error = nfs_init_server_rpcclient(server, &timeparms, data->auth_flavors[0]); |
1068 | 1072 | ||
1069 | error: | 1073 | error: |