NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease

[ Upstream commit 40882deb83 ]

The spec requires that we always at least send a RECLAIM_COMPLETE when
we're done establishing the lease and recovering any state.

Fixes: fce5c838e1 ("nfs41: RECLAIM_COMPLETE functionality")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Trond Myklebust 2023-03-13 18:45:53 -04:00 коммит произвёл Greg Kroah-Hartman
Родитель a2bd706ab6
Коммит 0ccc1a6bac
1 изменённых файлов: 4 добавлений и 0 удалений

Просмотреть файл

@ -67,6 +67,8 @@
#define OPENOWNER_POOL_SIZE 8 #define OPENOWNER_POOL_SIZE 8
static void nfs4_state_start_reclaim_reboot(struct nfs_client *clp);
const nfs4_stateid zero_stateid = { const nfs4_stateid zero_stateid = {
{ .data = { 0 } }, { .data = { 0 } },
.type = NFS4_SPECIAL_STATEID_TYPE, .type = NFS4_SPECIAL_STATEID_TYPE,
@ -330,6 +332,8 @@ do_confirm:
status = nfs4_proc_create_session(clp, cred); status = nfs4_proc_create_session(clp, cred);
if (status != 0) if (status != 0)
goto out; goto out;
if (!(clp->cl_exchange_flags & EXCHGID4_FLAG_CONFIRMED_R))
nfs4_state_start_reclaim_reboot(clp);
nfs41_finish_session_reset(clp); nfs41_finish_session_reset(clp);
nfs_mark_client_ready(clp, NFS_CS_READY); nfs_mark_client_ready(clp, NFS_CS_READY);
out: out: