nfsd4 state cleanup
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest25 patches 10 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/25 | nfsd4: centralize handling of replay ownersfs/ fs/ | +23 | 0 replies | |
| 2/25 | nfsd4: cleanup seqid op stateowner usagefs/ fs/ fs/ | +24 | 0 replies | |
| 3/25 | nfsd4: extend state lock over seqid replay logicfs/ fs/ | +11 | 5 replies | |
| 4/25 | nfsd4: eliminate impossible open replay casefs/ | +2 | 0 replies | |
| 5/25 | nfsd4: drop most stateowner refcountingfs/ fs/ fs/ +2 more | +22 | 0 replies | |
| 6/25 | nfsd4: eliminate unused lt_stateownerfs/ fs/ | +4 | 0 replies | |
| 7/25 | nfsd4: share common seqid checksfs/ | +21 | 0 replies | |
| 8/25 | nfsd4: simplify check_open logicfs/ | +2 | 0 replies | |
| 9/25 | nfsd4: move double-confirm test to open_confirmfs/ | +5 | 0 replies | |
| 10/25 | nfsd4: move CLOSE_STATE special case to callerfs/ fs/ | +27 | 0 replies | |
| 11/25 | nfsd4: split stateowners into open and lockownersfs/ fs/ fs/ +2 more | +224 | 0 replies | |
| 12/25 | nfsd4: split out some free_generic_stateid codefs/ | +8 | 0 replies | |
| 13/25 | nfsd4: rearrange to avoid a forward referencefs/ | +26 | 0 replies | |
| 14/25 | nfsd4: split up find_stateidfs/ | +21 | 0 replies | |
| 15/25 | nfsd4: split preprocess_seqid, cleanupfs/ fs/ | +45 | 0 replies | |
| 16/25 | nfsd4: pass around typemask instead of flagsfs/ fs/ | +8 | 0 replies | |
| 17/25 | nfsd4: rename init_stateidfs/ | +2 | 0 replies | |
| 18/25 | nfsd4: remove redundant stateid initializationfs/ | +0 | 0 replies | |
| 19/25 | nfsd4: move some of nfs4_stateid into a separate structurefs/ fs/ | +106 | 0 replies | |
| 20/25 | nfsd4: add common dl_stid field to delegationfs/ fs/ fs/ | +22 | 0 replies | |
| 21/25 | nfsd4: share common stid-hashing helper functionfs/ | +11 | 0 replies | |
| 22/25 | nfsd4: hash deleg stateid's like any otherfs/ fs/ | +51 | 0 replies | |
| 23/25 | nfsd4: fix test_stateid for delegation stateid'sfs/ | +16 | 0 replies | |
| 24/25 | nfsd4: use deleg changes to cleanup preprocess_stateid_opfs/ | +10 | 0 replies | |
| 25/25 | nfsd4: better stateid hashingfs/ | +4 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 00/25] nfsd4 state cleanup
This is just another batch of little cleanups and bugfixes to the nfsd4 state code.
What I'm actually thinking I'd like to do next is change the way stateid's are composed to make it possible to look up the client first. Once the client's looked up, lookup of the individual stateid, and most of the following work, looks to me like it could be done under a per-client lock. The set of clients doesn't change very much so we could use locking that favors readers (maybe rcu) for that part. So that could be a first step towards saner locking.
And then also still to do:
- close replays: we keep around a stateid to handle close replays only in the case where it's the last stateid for an openowner, but that's not sufficient.
- the data structures aren't really right for the things we need to do: e.g. release_lockowner currently does a linear search through all the lockowners!
- multiple client-to-lockowner locks for a given (owner, file) aren't handled right.
- I need to look again at doing a better job of distinguishing the bad, expired, and stale cases for stateid's.
I was hoping to have that ready for 3.2 but unfortunately keep running across small bugs or cleanup opportunities like these along the way; perhaps next week....
--b.
J. Bruce Fields (25):
nfsd4: centralize handling of replay owners
nfsd4: cleanup seqid op stateowner usage
nfsd4: extend state lock over seqid replay logic
nfsd4: eliminate impossible open replay case
nfsd4: drop most stateowner refcounting
nfsd4: eliminate unused lt_stateowner
nfsd4: share common seqid checks
nfsd4: simplify check_open logic
nfsd4: move double-confirm test to open_confirm
nfsd4: move CLOSE_STATE special case to caller
nfsd4: split stateowners into open and lockowners
nfsd4: split out some free_generic_stateid code
nfsd4: rearrange to avoid a forward reference
nfsd4: split up find_stateid
nfsd4: split preprocess_seqid, cleanup
nfsd4: pass around typemask instead of flags
nfsd4: rename init_stateid
nfsd4: remove redundant stateid initialization
nfsd4: move some of nfs4_stateid into a separate structure
nfsd4: add common dl_stid field to delegation
nfsd4: share common stid-hashing helper function
nfsd4: hash deleg stateid's like any other
nfsd4: fix test_stateid for delegation stateid's
nfsd4: use deleg changes to cleanup preprocess_stateid_op
nfsd4: better stateid hashing
fs/nfsd/nfs4callback.c | 2 +- fs/nfsd/nfs4proc.c | 25 +- fs/nfsd/nfs4state.c | 989 +++++++++++++++++++++++------------------------- fs/nfsd/nfs4xdr.c | 52 ++-- fs/nfsd/state.h | 92 +++-- fs/nfsd/xdr4.h | 12 +- 6 files changed, 570 insertions(+), 602 deletions(-)
Signature · 1 line
1.7.4.1