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:
Родитель
314d7cc05d
Коммит
b9536ad521
|
@ -2275,9 +2275,11 @@ 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);
|
||||
calldata->timestamp = jiffies;
|
||||
|
|
Загрузка…
Ссылка в новой задаче