Try using machine credentials for RENEW calls
[firefly-linux-kernel-4.4.55.git] / fs / nfs / nfs4state.c
index cb708b20a775c4bb4d5cb9a20b69729cf53c9f79..12b068f2ec91a2d95d8b47dce9438b02a652bd3a 100644 (file)
@@ -146,6 +146,11 @@ struct rpc_cred *nfs4_get_renew_cred_locked(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);
+       if (cred != NULL)
+               goto out;
+
        rcu_read_lock();
        list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
                cred = nfs4_get_renew_cred_server_locked(server);
@@ -153,6 +158,8 @@ struct rpc_cred *nfs4_get_renew_cred_locked(struct nfs_client *clp)
                        break;
        }
        rcu_read_unlock();
+
+out:
        return cred;
 }
 
@@ -1261,7 +1268,8 @@ restart:
                                spin_lock(&state->state_lock);
                                list_for_each_entry(lock, &state->lock_states, ls_locks) {
                                        if (!(lock->ls_flags & NFS_LOCK_INITIALIZED))
-                                               printk("NFS: %s: Lock reclaim "
+                                               pr_warn_ratelimited("NFS: "
+                                                       "%s: Lock reclaim "
                                                        "failed!\n", __func__);
                                }
                                spin_unlock(&state->state_lock);