Commit b9536ad5 authored by Andy Adamson's avatar Andy Adamson Committed by Trond Myklebust

NFSv4 release the sequence id in the return on close case

Otherwise we deadlock if state recovery is initiated while we
sleep.
Signed-off-by: default avatarAndy Adamson <andros@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 314d7cc0
...@@ -2275,9 +2275,11 @@ static void nfs4_close_prepare(struct rpc_task *task, void *data) ...@@ -2275,9 +2275,11 @@ static void nfs4_close_prepare(struct rpc_task *task, void *data)
if (calldata->arg.fmode == 0) { if (calldata->arg.fmode == 0) {
task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE];
if (calldata->roc && if (calldata->roc &&
pnfs_roc_drain(inode, &calldata->roc_barrier, task)) pnfs_roc_drain(inode, &calldata->roc_barrier, task)) {
nfs_release_seqid(calldata->arg.seqid);
goto out_wait; goto out_wait;
} }
}
nfs_fattr_init(calldata->res.fattr); nfs_fattr_init(calldata->res.fattr);
calldata->timestamp = jiffies; calldata->timestamp = jiffies;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment