[PATCH 00/25] nfsd4 state cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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(-)

-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux