mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-12 08:48:48 +00:00
NFSv4.1: Fix a regression in DELEGRETURN
We don't want to call nfs4_free_revoked_stateid() in the case where the delegreturn was successful. Reported-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
62bdf94a20
commit
23ea44c215
@ -5569,6 +5569,7 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata)
|
|||||||
switch (task->tk_status) {
|
switch (task->tk_status) {
|
||||||
case 0:
|
case 0:
|
||||||
renew_lease(data->res.server, data->timestamp);
|
renew_lease(data->res.server, data->timestamp);
|
||||||
|
break;
|
||||||
case -NFS4ERR_ADMIN_REVOKED:
|
case -NFS4ERR_ADMIN_REVOKED:
|
||||||
case -NFS4ERR_DELEG_REVOKED:
|
case -NFS4ERR_DELEG_REVOKED:
|
||||||
case -NFS4ERR_EXPIRED:
|
case -NFS4ERR_EXPIRED:
|
||||||
@ -5579,8 +5580,6 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata)
|
|||||||
case -NFS4ERR_OLD_STATEID:
|
case -NFS4ERR_OLD_STATEID:
|
||||||
case -NFS4ERR_STALE_STATEID:
|
case -NFS4ERR_STALE_STATEID:
|
||||||
task->tk_status = 0;
|
task->tk_status = 0;
|
||||||
if (data->roc)
|
|
||||||
pnfs_roc_set_barrier(data->inode, data->roc_barrier);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (nfs4_async_handle_error(task, data->res.server,
|
if (nfs4_async_handle_error(task, data->res.server,
|
||||||
@ -5590,6 +5589,8 @@ static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
data->rpc_status = task->tk_status;
|
data->rpc_status = task->tk_status;
|
||||||
|
if (data->roc && data->rpc_status == 0)
|
||||||
|
pnfs_roc_set_barrier(data->inode, data->roc_barrier);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nfs4_delegreturn_release(void *calldata)
|
static void nfs4_delegreturn_release(void *calldata)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user