Commit 9c5bf38d authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: Fix nfs_alloc_client()



The scheme to indicate which services have been started up appears to be
seriously broken.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 36b15c54
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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)
@@ -153,8 +153,8 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
	return clp;

error_3:
	if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state))
		nfs_callback_down();
	__clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state);
error_2:
	rpciod_down();
	__clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
@@ -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;