NFS: Never use user credentials for lease renewal
Never try to use a non-UID 0 user credential for lease management, as that credential can change out from under us. The server will block NFSv4 lease recovery with NFS4ERR_CLID_INUSE. Since the mechanism to acquire a credential for lease management is now the same for all minor versions, replace the minor version- specific callout with a single function. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:

gecommit door
Trond Myklebust

bovenliggende
d688f7b8f6
commit
73d8bde5e4
@@ -6069,7 +6069,7 @@ int nfs4_destroy_clientid(struct nfs_client *clp)
|
||||
goto out;
|
||||
if (clp->cl_preserve_clid)
|
||||
goto out;
|
||||
cred = nfs4_get_exchange_id_cred(clp);
|
||||
cred = nfs4_get_clid_cred(clp);
|
||||
ret = nfs4_proc_destroy_clientid(clp, cred);
|
||||
if (cred)
|
||||
put_rpccred(cred);
|
||||
@@ -7363,7 +7363,6 @@ static const struct nfs4_state_recovery_ops nfs40_reboot_recovery_ops = {
|
||||
.recover_open = nfs4_open_reclaim,
|
||||
.recover_lock = nfs4_lock_reclaim,
|
||||
.establish_clid = nfs4_init_clientid,
|
||||
.get_clid_cred = nfs4_get_setclientid_cred,
|
||||
.detect_trunking = nfs40_discover_server_trunking,
|
||||
};
|
||||
|
||||
@@ -7374,7 +7373,6 @@ static const struct nfs4_state_recovery_ops nfs41_reboot_recovery_ops = {
|
||||
.recover_open = nfs4_open_reclaim,
|
||||
.recover_lock = nfs4_lock_reclaim,
|
||||
.establish_clid = nfs41_init_clientid,
|
||||
.get_clid_cred = nfs4_get_exchange_id_cred,
|
||||
.reclaim_complete = nfs41_proc_reclaim_complete,
|
||||
.detect_trunking = nfs41_discover_server_trunking,
|
||||
};
|
||||
@@ -7386,7 +7384,6 @@ static const struct nfs4_state_recovery_ops nfs40_nograce_recovery_ops = {
|
||||
.recover_open = nfs4_open_expired,
|
||||
.recover_lock = nfs4_lock_expired,
|
||||
.establish_clid = nfs4_init_clientid,
|
||||
.get_clid_cred = nfs4_get_setclientid_cred,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_NFS_V4_1)
|
||||
@@ -7396,7 +7393,6 @@ static const struct nfs4_state_recovery_ops nfs41_nograce_recovery_ops = {
|
||||
.recover_open = nfs41_open_expired,
|
||||
.recover_lock = nfs41_lock_expired,
|
||||
.establish_clid = nfs41_init_clientid,
|
||||
.get_clid_cred = nfs4_get_exchange_id_cred,
|
||||
};
|
||||
#endif /* CONFIG_NFS_V4_1 */
|
||||
|
||||
|
Verwijs in nieuw issue
Block a user