nfsd4: hash closed stateid's like any other
Look up closed stateid's in the stateid hash like any other stateid rather than searching the close lru. This is simpler, and fixes a bug: currently we handle only the case of a close that is the last close for a given stateowner, but not the case of a close for a stateowner that still has active opens on other files. Thus in a case like: open(owner, file1) open(owner, file2) close(owner, file2) close(owner, file2) the final close won't be recognized as a retransmission. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
d3b313a463
commit
f7a4d87207
2 changed files with 56 additions and 49 deletions
|
@ -76,7 +76,9 @@ struct nfs4_stid {
|
|||
#define NFS4_OPEN_STID 1
|
||||
#define NFS4_LOCK_STID 2
|
||||
#define NFS4_DELEG_STID 4
|
||||
char sc_type;
|
||||
/* For an open stateid kept around *only* to process close replays: */
|
||||
#define NFS4_CLOSED_STID 8
|
||||
unsigned char sc_type;
|
||||
struct list_head sc_hash;
|
||||
stateid_t sc_stateid;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue