Skip to content

Commit

Permalink
NFS: Fix nfs_alloc_client()
Browse files Browse the repository at this point in the history
The scheme to indicate which services have been started up appears to be
seriously broken.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Trond Myklebust authored and Trond Myklebust committed Sep 23, 2006
1 parent 36b15c5 commit 9c5bf38
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions fs/nfs/client.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,9 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
if (error < 0) {
dprintk("%s: couldn't start rpciod! Error = %d\n",
__FUNCTION__, error);
__set_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
goto error_1;
}
__set_bit(NFS_CS_RPCIOD, &clp->cl_res_state);

if (nfsversion == 4) {
if (nfs_callback_up() < 0)
Expand Down Expand Up @@ -153,8 +153,8 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
return clp;

error_3:
nfs_callback_down();
__clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state);
if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state))
nfs_callback_down();
error_2:
rpciod_down();
__clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
Expand Down Expand Up @@ -195,7 +195,7 @@ static void nfs_free_client(struct nfs_client *clp)
nfs_callback_down();

if (__test_and_clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state))
rpciod_down();
rpciod_down();

kfree(clp->cl_hostname);
kfree(clp);
Expand Down Expand Up @@ -881,9 +881,9 @@ static int nfs4_init_client(struct nfs_client *clp,
if (error < 0) {
dprintk("%s: failed to create idmapper. Error = %d\n",
__FUNCTION__, error);
__set_bit(NFS_CS_IDMAP, &clp->cl_res_state);
goto error;
}
__set_bit(NFS_CS_IDMAP, &clp->cl_res_state);

nfs_mark_client_ready(clp, NFS_CS_READY);
return 0;
Expand Down

0 comments on commit 9c5bf38

Please sign in to comment.