提交 9c5bf38d 编写于 作者: T Trond Myklebust

NFS: Fix nfs_alloc_client()

The scheme to indicate which services have been started up appears to be
seriously broken.
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 36b15c54
...@@ -113,9 +113,9 @@ static struct nfs_client *nfs_alloc_client(const char *hostname, ...@@ -113,9 +113,9 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
if (error < 0) { if (error < 0) {
dprintk("%s: couldn't start rpciod! Error = %d\n", dprintk("%s: couldn't start rpciod! Error = %d\n",
__FUNCTION__, error); __FUNCTION__, error);
__set_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
goto error_1; goto error_1;
} }
__set_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
if (nfsversion == 4) { if (nfsversion == 4) {
if (nfs_callback_up() < 0) if (nfs_callback_up() < 0)
...@@ -153,8 +153,8 @@ static struct nfs_client *nfs_alloc_client(const char *hostname, ...@@ -153,8 +153,8 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
return clp; return clp;
error_3: error_3:
nfs_callback_down(); if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state))
__clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state); nfs_callback_down();
error_2: error_2:
rpciod_down(); rpciod_down();
__clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state); __clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
...@@ -195,7 +195,7 @@ static void nfs_free_client(struct nfs_client *clp) ...@@ -195,7 +195,7 @@ static void nfs_free_client(struct nfs_client *clp)
nfs_callback_down(); nfs_callback_down();
if (__test_and_clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state)) if (__test_and_clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state))
rpciod_down(); rpciod_down();
kfree(clp->cl_hostname); kfree(clp->cl_hostname);
kfree(clp); kfree(clp);
...@@ -881,9 +881,9 @@ static int nfs4_init_client(struct nfs_client *clp, ...@@ -881,9 +881,9 @@ static int nfs4_init_client(struct nfs_client *clp,
if (error < 0) { if (error < 0) {
dprintk("%s: failed to create idmapper. Error = %d\n", dprintk("%s: failed to create idmapper. Error = %d\n",
__FUNCTION__, error); __FUNCTION__, error);
__set_bit(NFS_CS_IDMAP, &clp->cl_res_state);
goto error; goto error;
} }
__set_bit(NFS_CS_IDMAP, &clp->cl_res_state);
nfs_mark_client_ready(clp, NFS_CS_READY); nfs_mark_client_ready(clp, NFS_CS_READY);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册