diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-05-23 19:23:31 +0200 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-05-23 21:20:57 +0200 |
commit | 7b38c3682c5cab4f98751d5fe57b78a59020653d (patch) | |
tree | c6c2ea72b99b59b60a3c7ba3d142a4926664398e /fs/nfs/internal.h | |
parent | NFS: EXCHANGE_ID should save the server major and minor ID (diff) | |
download | linux-7b38c3682c5cab4f98751d5fe57b78a59020653d.tar.xz linux-7b38c3682c5cab4f98751d5fe57b78a59020653d.zip |
NFSv4.1: Fix session initialisation races
Session initialisation is not complete until the lease manager
has run. We need to ensure that both nfs4_init_session and
nfs4_init_ds_session do so, and that they check for any resulting
errors in clp->cl_cons_state.
Only after this is done, can nfs4_ds_connect check the contents
of clp->cl_exchange_flags.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Andy Adamson <andros@netapp.com>
Diffstat (limited to 'fs/nfs/internal.h')
-rw-r--r-- | fs/nfs/internal.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 547f24f17d16..5ea571e8d0e9 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -169,7 +169,6 @@ extern struct nfs_server *nfs_clone_server(struct nfs_server *, struct nfs_fattr *, rpc_authflavor_t); extern void nfs_mark_client_ready(struct nfs_client *clp, int state); -extern int nfs4_check_client_ready(struct nfs_client *clp); extern struct nfs_client *nfs4_set_ds_client(struct nfs_client* mds_clp, const struct sockaddr *ds_addr, int ds_addrlen, int ds_proto, @@ -234,7 +233,7 @@ extern const u32 nfs41_maxwrite_overhead; extern struct rpc_procinfo nfs4_procedures[]; #endif -extern int nfs4_init_ds_session(struct nfs_client *clp); +extern int nfs4_init_ds_session(struct nfs_client *, unsigned long); /* proc.c */ void nfs_close_context(struct nfs_open_context *ctx, int is_sync); |