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: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Andy Adamson 2013-04-11 09:28:45 -04:00 committed by Trond Myklebust
parent 314d7cc05d
commit b9536ad521
1 changed files with 3 additions and 1 deletions

View File

@ -2275,8 +2275,10 @@ static void nfs4_close_prepare(struct rpc_task *task, void *data)
if (calldata->arg.fmode == 0) {
task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE];
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;
}
}
nfs_fattr_init(calldata->res.fattr);