struct nfs4_state_maintenance_ops {
        int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *, unsigned);
-       struct rpc_cred * (*get_state_renewal_cred_locked)(struct nfs_client *);
+       struct rpc_cred * (*get_state_renewal_cred)(struct nfs_client *);
        int (*renew_lease)(struct nfs_client *, struct rpc_cred *);
 };
 
 
 /* nfs4state.c */
 struct rpc_cred *nfs4_get_clid_cred(struct nfs_client *clp);
-struct rpc_cred *nfs4_get_machine_cred_locked(struct nfs_client *clp);
-struct rpc_cred *nfs4_get_renew_cred_locked(struct nfs_client *clp);
+struct rpc_cred *nfs4_get_machine_cred(struct nfs_client *clp);
+struct rpc_cred *nfs4_get_renew_cred(struct nfs_client *clp);
 int nfs4_discover_server_trunking(struct nfs_client *clp,
                        struct nfs_client **);
 int nfs40_discover_server_trunking(struct nfs_client *clp,
 
 
 static const struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = {
        .sched_state_renewal = nfs4_proc_async_renew,
-       .get_state_renewal_cred_locked = nfs4_get_renew_cred_locked,
+       .get_state_renewal_cred = nfs4_get_renew_cred,
        .renew_lease = nfs4_proc_renew,
 };
 
 #if defined(CONFIG_NFS_V4_1)
 static const struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = {
        .sched_state_renewal = nfs41_proc_async_sequence,
-       .get_state_renewal_cred_locked = nfs4_get_machine_cred_locked,
+       .get_state_renewal_cred = nfs4_get_machine_cred,
        .renew_lease = nfs4_proc_sequence,
 };
 #endif
 
        if (test_bit(NFS_CS_STOP_RENEW, &clp->cl_res_state))
                goto out;
 
-       spin_lock(&clp->cl_lock);
        lease = clp->cl_lease_time;
        last = clp->cl_last_renewal;
        now = jiffies;
                renew_flags |= NFS4_RENEW_DELEGATION_CB;
 
        if (renew_flags != 0) {
-               cred = ops->get_state_renewal_cred_locked(clp);
-               spin_unlock(&clp->cl_lock);
+               cred = ops->get_state_renewal_cred(clp);
                if (cred == NULL) {
                        if (!(renew_flags & NFS4_RENEW_DELEGATION_CB)) {
                                set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
        } else {
                dprintk("%s: failed to call renewd. Reason: lease not expired \n",
                                __func__);
-               spin_unlock(&clp->cl_lock);
        }
        nfs4_schedule_state_renewal(clp);
 out_exp:
 
        return status;
 }
 
-struct rpc_cred *nfs4_get_machine_cred_locked(struct nfs_client *clp)
+struct rpc_cred *nfs4_get_machine_cred(struct nfs_client *clp)
 {
        struct rpc_cred *cred = clp->cl_root_cred;
 
 }
 
 /**
- * nfs4_get_renew_cred_locked - Acquire credential for a renew operation
+ * nfs4_get_renew_cred - Acquire credential for a renew operation
  * @clp: client state handle
  *
  * Returns an rpc_cred with reference count bumped, or NULL.
  * Caller must hold clp->cl_lock.
  */
-struct rpc_cred *nfs4_get_renew_cred_locked(struct nfs_client *clp)
+struct rpc_cred *nfs4_get_renew_cred(struct nfs_client *clp)
 {
        struct rpc_cred *cred = NULL;
        struct nfs_server *server;
 
        /* Use machine credentials if available */
-       cred = nfs4_get_machine_cred_locked(clp);
+       cred = nfs4_get_machine_cred(clp);
        if (cred != NULL)
                goto out;
 
+       spin_lock(&clp->cl_lock);
        rcu_read_lock();
        list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
                cred = nfs4_get_renew_cred_server_locked(server);
                        break;
        }
        rcu_read_unlock();
+       spin_unlock(&clp->cl_lock);
 
 out:
        return cred;
 {
        struct rpc_cred *cred;
 
-       spin_lock(&clp->cl_lock);
-       cred = nfs4_get_machine_cred_locked(clp);
-       spin_unlock(&clp->cl_lock);
+       cred = nfs4_get_machine_cred(clp);
        return cred;
 }
 
        /* Is the client already known to have an expired lease? */
        if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state))
                return 0;
-       spin_lock(&clp->cl_lock);
-       cred = ops->get_state_renewal_cred_locked(clp);
-       spin_unlock(&clp->cl_lock);
+       cred = ops->get_state_renewal_cred(clp);
        if (cred == NULL) {
                cred = nfs4_get_clid_cred(clp);
                status = -ENOKEY;
        dprintk("%s: migration reported on \"%s\"\n", __func__,
                        clp->cl_hostname);
 
-       spin_lock(&clp->cl_lock);
-       cred = ops->get_state_renewal_cred_locked(clp);
-       spin_unlock(&clp->cl_lock);
+       cred = ops->get_state_renewal_cred(clp);
        if (cred == NULL)
                return -NFS4ERR_NOENT;
 
        dprintk("%s: lease moved reported on \"%s\"\n", __func__,
                        clp->cl_hostname);
 
-       spin_lock(&clp->cl_lock);
-       cred = ops->get_state_renewal_cred_locked(clp);
-       spin_unlock(&clp->cl_lock);
+       cred = ops->get_state_renewal_cred(clp);
        if (cred == NULL)
                return -NFS4ERR_NOENT;