diff options
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r-- | fs/nfs/client.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index d28a987f569e..3e232bf56dfb 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -528,6 +528,22 @@ void nfs_mark_client_ready(struct nfs_client *clp, int state) | |||
528 | } | 528 | } |
529 | 529 | ||
530 | /* | 530 | /* |
531 | * With sessions, the client is not marked ready until after a | ||
532 | * successful EXCHANGE_ID and CREATE_SESSION. | ||
533 | * | ||
534 | * Map errors cl_cons_state errors to EPROTONOSUPPORT to indicate | ||
535 | * other versions of NFS can be tried. | ||
536 | */ | ||
537 | int nfs4_check_client_ready(struct nfs_client *clp) | ||
538 | { | ||
539 | if (!nfs4_has_session(clp)) | ||
540 | return 0; | ||
541 | if (clp->cl_cons_state < NFS_CS_READY) | ||
542 | return -EPROTONOSUPPORT; | ||
543 | return 0; | ||
544 | } | ||
545 | |||
546 | /* | ||
531 | * Initialise the timeout values for a connection | 547 | * Initialise the timeout values for a connection |
532 | */ | 548 | */ |
533 | static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, | 549 | static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, |