diff options
| author | Ingo Molnar <[email protected]> | 2017-04-03 14:36:32 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2017-04-03 14:36:32 +0000 |
| commit | 7f75540ff2ca84dbac26cf9deeb620cbf5646f5e (patch) | |
| tree | 1eb54748074d3a91f3dd70fb5d4b23bf713f0bd5 /fs/nfs/client.c | |
| parent | x86/mm/numa: Remove numa_nodemask_from_meminfo() (diff) | |
| parent | Linux 4.11-rc5 (diff) | |
| download | kernel-7f75540ff2ca84dbac26cf9deeb620cbf5646f5e.tar.gz kernel-7f75540ff2ca84dbac26cf9deeb620cbf5646f5e.zip | |
Merge tag 'v4.11-rc5' into x86/mm, to refresh the branch
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'fs/nfs/client.c')
| -rw-r--r-- | fs/nfs/client.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 91a8d610ba0f..390ada8741bc 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -325,10 +325,33 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat return NULL; } -static bool nfs_client_init_is_complete(const struct nfs_client *clp) +/* + * Return true if @clp is done initializing, false if still working on it. + * + * Use nfs_client_init_status to check if it was successful. + */ +bool nfs_client_init_is_complete(const struct nfs_client *clp) { return clp->cl_cons_state <= NFS_CS_READY; } +EXPORT_SYMBOL_GPL(nfs_client_init_is_complete); + +/* + * Return 0 if @clp was successfully initialized, -errno otherwise. + * + * This must be called *after* nfs_client_init_is_complete() returns true, + * otherwise it will pop WARN_ON_ONCE and return -EINVAL + */ +int nfs_client_init_status(const struct nfs_client *clp) +{ + /* called without checking nfs_client_init_is_complete */ + if (clp->cl_cons_state > NFS_CS_READY) { + WARN_ON_ONCE(1); + return -EINVAL; + } + return clp->cl_cons_state; +} +EXPORT_SYMBOL_GPL(nfs_client_init_status); int nfs_wait_client_init_complete(const struct nfs_client *clp) { |
