diff options
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index bd4555fbdf25..019a009e73a0 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -4935,14 +4935,22 @@ int nfs4_init_session(struct nfs_server *server) | |||
4935 | { | 4935 | { |
4936 | struct nfs_client *clp = server->nfs_client; | 4936 | struct nfs_client *clp = server->nfs_client; |
4937 | struct nfs4_session *session; | 4937 | struct nfs4_session *session; |
4938 | unsigned int rsize, wsize; | ||
4938 | int ret; | 4939 | int ret; |
4939 | 4940 | ||
4940 | if (!nfs4_has_session(clp)) | 4941 | if (!nfs4_has_session(clp)) |
4941 | return 0; | 4942 | return 0; |
4942 | 4943 | ||
4944 | rsize = server->rsize; | ||
4945 | if (rsize == 0) | ||
4946 | rsize = NFS_MAX_FILE_IO_SIZE; | ||
4947 | wsize = server->wsize; | ||
4948 | if (wsize == 0) | ||
4949 | wsize = NFS_MAX_FILE_IO_SIZE; | ||
4950 | |||
4943 | session = clp->cl_session; | 4951 | session = clp->cl_session; |
4944 | session->fc_attrs.max_rqst_sz = server->wsize + nfs41_maxwrite_overhead; | 4952 | session->fc_attrs.max_rqst_sz = wsize + nfs41_maxwrite_overhead; |
4945 | session->fc_attrs.max_resp_sz = server->rsize + nfs41_maxread_overhead; | 4953 | session->fc_attrs.max_resp_sz = rsize + nfs41_maxread_overhead; |
4946 | 4954 | ||
4947 | ret = nfs4_recover_expired_lease(server); | 4955 | ret = nfs4_recover_expired_lease(server); |
4948 | if (!ret) | 4956 | if (!ret) |