Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 18958
b: refs/heads/master
c: ae8b625
h: refs/heads/master
v: v3
  • Loading branch information
J. Bruce Fields authored and Linus Torvalds committed Jan 19, 2006
1 parent 3c4e2f9 commit 8512da9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a525825df15221a95d4c1f5a291d9fde77ef10bc
refs/heads/master: ae8b625313db4dd4b060962c2a02f3a2837ca61b
24 changes: 11 additions & 13 deletions trunk/fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -1465,8 +1465,16 @@ nfsd4_process_open1(struct nfsd4_open *open)
sop = find_openstateowner_str(strhashval, open);
if (sop) {
open->op_stateowner = sop;
/* check for replay */
if (open->op_seqid == sop->so_seqid - 1){
if (!sop->so_confirmed) {
/* Replace any unconfirmed stateowner without
* even checking for replays */
clp = sop->so_client;
release_stateowner(sop);
} else if (open->op_seqid == sop->so_seqid) {
/* normal case */
goto renew;
} else if (open->op_seqid == sop->so_seqid - 1) {
/* replay */
if (sop->so_replay.rp_buflen)
return NFSERR_REPLAY_ME;
else {
Expand All @@ -1480,19 +1488,9 @@ nfsd4_process_open1(struct nfsd4_open *open)
" replay with no replay cache\n");
goto renew;
}
} else if (sop->so_confirmed) {
if (open->op_seqid == sop->so_seqid)
goto renew;
} else {
status = nfserr_bad_seqid;
goto out;
} else {
/* If we get here, we received an OPEN for an
* unconfirmed nfs4_stateowner. Since the seqid's are
* different, purge the existing nfs4_stateowner, and
* instantiate a new one.
*/
clp = sop->so_client;
release_stateowner(sop);
}
} else {
/* nfs4_stateowner not found.
Expand Down

0 comments on commit 8512da9

Please sign in to comment.