Loading fs/nfs/nfs4proc.c +9 −0 Original line number Diff line number Diff line Loading @@ -9051,6 +9051,15 @@ static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) if (!nfs41_sequence_process(task, &lrp->res.seq_res)) return; /* * Was there an RPC level error? Assume the call succeeded, * and that we need to release the layout */ if (task->tk_rpc_status != 0 && RPC_WAS_SENT(task)) { lrp->res.lrs_present = 0; return; } server = NFS_SERVER(lrp->args.inode); switch (task->tk_status) { case -NFS4ERR_OLD_STATEID: Loading fs/nfs/pnfs.c +15 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,21 @@ int pnfs_roc_done(struct rpc_task *task, struct inode *inode, case 0: retval = 0; break; case -NFS4ERR_NOMATCHING_LAYOUT: /* Was there an RPC level error? If not, retry */ if (task->tk_rpc_status == 0) break; /* If the call was not sent, let caller handle it */ if (!RPC_WAS_SENT(task)) return 0; /* * Otherwise, assume the call succeeded and * that we need to release the layout */ *ret = 0; (*respp)->lrs_present = 0; retval = 0; break; case -NFS4ERR_DELAY: /* Let the caller handle the retry */ *ret = -NFS4ERR_NOMATCHING_LAYOUT; Loading Loading
fs/nfs/nfs4proc.c +9 −0 Original line number Diff line number Diff line Loading @@ -9051,6 +9051,15 @@ static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) if (!nfs41_sequence_process(task, &lrp->res.seq_res)) return; /* * Was there an RPC level error? Assume the call succeeded, * and that we need to release the layout */ if (task->tk_rpc_status != 0 && RPC_WAS_SENT(task)) { lrp->res.lrs_present = 0; return; } server = NFS_SERVER(lrp->args.inode); switch (task->tk_status) { case -NFS4ERR_OLD_STATEID: Loading
fs/nfs/pnfs.c +15 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,21 @@ int pnfs_roc_done(struct rpc_task *task, struct inode *inode, case 0: retval = 0; break; case -NFS4ERR_NOMATCHING_LAYOUT: /* Was there an RPC level error? If not, retry */ if (task->tk_rpc_status == 0) break; /* If the call was not sent, let caller handle it */ if (!RPC_WAS_SENT(task)) return 0; /* * Otherwise, assume the call succeeded and * that we need to release the layout */ *ret = 0; (*respp)->lrs_present = 0; retval = 0; break; case -NFS4ERR_DELAY: /* Let the caller handle the retry */ *ret = -NFS4ERR_NOMATCHING_LAYOUT; Loading